On 15 March 2012 09:36, David Brown wrote:
What you need here is a way of tagging the compilation state with some sort
of attributes, and a way of having functions and other parts of the code
check those attributes for particular features. These features must be
definable in the user code, not just in the compiler, so they should
probably have string names and integer values.
[snip]
You might be interested in http://www.artima.com/cppsource/codefeatures.html
I believe the polynomial increases in compilation times and the need
for the global "AllCodeFeatures" container are solvable in C++11, e.g.
by using a variadic class template to represent compile-time strings,
which could be compared and sorted at compile-time to provide a total
order without needing all features to be known a priori.