On the basis that noone is testing old compilers
This statement is false.
so noone even knows if the workarounds inside #if blocks work.
This statement would be irrelevant even if it were true. The people who wrote the code inside the #if blocks have most probably tested the code and might be testing it even now. The code might be working even if untested (or recently untested). Portions of code *do* work, tested or not tested or not recently tested. For some people, the portions are enough. Those portions help them in their daily work. Why should they be denied updates to (example follows) the small object allocator for shared_count if their compiler does not have <insert-feature-name-here> which does not affect the (example follows) small object allocator for shared_count ? Or if there exists a work-around ? Why should authors be discouraged from providing work-arounds ? I am not saying "force them". But I would like to strongly encourage it.