C++ Logo


Advanced search

[SG10] Feature testing for TRs

From: Nelson, Clark <clark.nelson_at_[hidden]>
Date: Thu, 14 Aug 2014 17:58:14 +0000
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:

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)
clark.nelson_at_[hidden]  Chair, CPLEX (C SG for parallel language extensions)

Received on 2014-08-14 19:58:21