In Rapperswil, I was involved in some discussions of feature testing for technical reports, mainly library TRs.
I gather there were some interface changes that some people wanted to make to what had been published as TR1, before adopting it all into the standard. But apparently there were other people who really, really didn't want to make non-backward-compatible changes, and apparently the people in the first group were frustrated by this. So this time around, the library groups are trying to preserve the option of making "breaking" changes when a TR is adopted into the standard. They are doing this by putting the TR facilities into a separate "experimental" namespace; they are even putting the new headers into a separate experimental "namespace": #include <experimental/optional> For more information on all this, see: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4023.html#general.namespaces What they are effectively doing is putting a curb or speed bump between the use of TR facilities and the use of the same facility as adopted into the standard. I'm not calling their justification unreasonable, but it is opposite in principle to what SG10 is trying to do: to smooth over the curbs between successive standards, as much as possible. Personally, I am way more concerned about feature testing for new language features, and especially the way they are used in standard libraries, than I am about new library features. So while this direction troubles me, I didn't feel the need to make a lot of noise about it in Rapperswil. But SG10 needs to talk about this. We haven't actually decided yet whether SD-6 should say anything about TRs. It could certainly be argued that the problem that prompts the use of "experimental" interfaces is, at its core, a feature-testing problem; perhaps it could even be solved more conveniently (for users) through the use of SG10-inspired techniques than by the methods currently being planned. -- Clark Nelson Vice chair, PL22.16 (ANSI C++ standard committee) Intel Corporation Chair, SG10 (C++ SG for feature-testing) [email protected] Chair, CPLEX (C SG for parallel language extensions) _______________________________________________ Features mailing list [email protected] http://www.open-std.org/mailman/listinfo/features
