Added new files.

[SVN r44715]
This commit is contained in:
John Maddock
2008-04-22 08:34:43 +00:00
parent b4eaf1eb50
commit 047d11cf66
3 changed files with 120 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
// (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;
}
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 21 12:40:41 2008
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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 the most recent version.//
// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $
//
// Test file for macro BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
// This file should not compile, if it does then
// BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS should not be defined.
// See file boost_no_part_spec_def_args.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
#include "boost_no_part_spec_def_args.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_partial_specialization_implicit_default_args::test();
}

View File

@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 21 12:40:41 2008
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// 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 the most recent version.//
// Revision $Id: generate.cpp 44422 2008-04-14 18:06:59Z johnmaddock $
//
// Test file for macro BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
// This file should compile, if it does not then
// BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS should be defined.
// See file boost_no_part_spec_def_args.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
#include "boost_no_part_spec_def_args.ipp"
#else
namespace boost_no_partial_specialization_implicit_default_args = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_partial_specialization_implicit_default_args::test();
}