On Fri, Aug 28, 2015 at 8:07 PM, Niall Douglas
Also, git has branches. Why don't you work on the half-baked stuff in a feature branch?
#if 0 is code smell.
These are entirely personal opinion based on suppositions and assumptions with zero technical relevance to the quality of a library, as was a lot of the stuff I snipped. I don't work in pristine code environments, I like to keep around bits of code in #if 0 blocks to remind me of things, or for the occasional use, or for any other reason. I personally would find such segments educational when reviewing a library rather than the unfounded claim of "code smell" which may be true in other code bases in your experience, but I can assure you is not the case in my code bases.
Instead of assuming code smells or other non-factually based suppositions, consider examining the coverage of the unit test suite and the rigorous testing regime run each and every commit and taking some hours to complete.
It's a code smell. AFIO is suposedly a finished library candidate for inclusion in Boost. Dead blocks shouldn't be there. Just store the code in your computer and get it out of a library that will continuously be processed in user code (even if with negligible costs). If you need special Intellisense (or alike) information just configure your local environment to read those files elsewhere.
Quite a few applications turn off or ignore std::cerr. At least given users the option to provide their own reporting function for emergencies.
It is trivial to redirect std::cerr elsewhere.
I am happy for std::cerr to become a macro, and this is logged at https://github.com/BoostGSoC13/boost.afio/issues/104.
Why on earth would you want to do this? Exceptions are there for these cases. Don't use a macro. Just don't log. It's not your job to do so. Specially using std::cerr. If you create such macro, and since I use Boost Log, that means I have to take care of configuring AFIO so it doesn't "spill" information. This is just bad. Regards, Rodrigo Madera