Jan van Dijk wrote:
Consider the one-liner C++ 'program':

template <class... args> struct pack;

With the trunk, g++ -c [-std=gnu++98] gives:

warning: variadic templates only available with -std=c++0x or -std=gnu++0x

Should this not be an *error* instead? Variadic templates really should not be supported in non-c++0x mode.

If not, how can I explicitly disable support for variadic templates? (The present behaviour frustrates some of our local autoconf tests.)

Should I file a bug report?

The problem I fear is that variadic templates are already conveniently
used as an implementation detail in libstdc++.  And the warning there
is probably hidden by the "system header" warning removal machinery.

I have already been bitten by this : I have a configuration test program
that passes (with a warning), while an error would be expected in non-C++0x
mode, so the rest of the code uses it, which triggers lots of warning.
My workaround for this is to test for G++0x mode explicitly in addition,
and #error on it in my test program.

--
Sylvain Pion
INRIA Sophia-Antipolis
Geometrica Project-Team
CGAL, http://cgal.org/

Reply via email to