On 7/2/15 10:47 AM, Gottlob Frege wrote:
I think the other problem, or the real problem, that none of this solves, is getting wide adoption of experimental features.
I don't think that's a huge problem. The problem is that most "experimental" libraries aren't really useable. Of course the authors would disagree, but they are really wrong. If I want to experiment with something, I have to know within about an hour what it does, how it works, and why it's worth doing. I have to be able to build it if necessary, and try it out on my system and in my project - which motivates me to find it in the first place. I scour the net looking for libraries which I ask the authors to add to the incubator. probable 99/100 or 999/1000 don't meet the above minimal criteria. I do keep statistics on hits/visits to each library in the incubator. I haven't been able to gather downloads. I do have contact information on those who've downloaded the library, but haven't an implemented a way to follow up and ask for feedback. I'd love to be able to get this implemented to promote experimental libraries and get feedback on them.
A constexpr branch is something bleeding edge users might use, and can maybe be done without much breakage - it is hopefully mostly addition.
My recent experience with this leads me to believe a) this would be a huge benefit for some libraries b) that (surprize!) actually making this conversion would be more effort than it would first apear.
Changing something like boost::optional to have conversion to tribool instead of bool, or removing operator*() and forcing users to use get(), etc. Those are big breaks.
This would really be a new library - optional2. But someone could start with a fork of current optional, update it, and add the new "experimental" version to the incubator. These days its really easy to do. Much easier than it was during the "sandbox" days. In general, I think that Boost is behind the curve in the usage of modern technology to promote its mission. I have no idea how to get users to actually be guinea pigs for those experiments. LOL - if you give them something worth experimenting with, they'll appear. If they don't appear, then there's probably no need for it. Still, we need better visibility and promotion for Boost (website, sponsorship/volunteers at CPPCon, outreach at other conferences, e.g. Embedded system conference, More experimental libraries presented at CPPCon, etc). Robert Ramey