12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // (C) Copyright John Maddock 2008.
- // Use, modification and distribution are subject to the
- // Boost Software License, Version 1.0. (See accompanying file
- // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- // See http://www.boost.org/libs/config for most recent version.
- // MACRO: BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
- // TITLE: Default arguments in partial specialization
- // DESCRIPTION: The compiler chokes if a partial specialization relies on default arguments in the primary template.
- namespace boost_no_partial_specialization_implicit_default_args{
- template <class T>
- struct one
- {
- };
- template <class T1, class T2 = void>
- struct tag
- {
- };
- template <class T1>
- struct tag<one<T1> >
- {
- };
- template <class T>
- void consume_variable(T const&){}
- int test()
- {
- tag<int> t1;
- consume_variable(t1);
- tag<one<int> > t2;
- consume_variable(t2);
- tag<int, double> t3;
- consume_variable(t3);
- tag<one<int>, double> t4;
- consume_variable(t4);
- return 0;
- }
- }
|