Boost logo

Boost-Commit :

From: john_at_[hidden]
Date: 2008-04-22 04:34:43


Author: johnmaddock
Date: 2008-04-22 04:34:43 EDT (Tue, 22 Apr 2008)
New Revision: 44715
URL: http://svn.boost.org/trac/boost/changeset/44715

Log:
Added new files.
Added:
   trunk/libs/config/test/boost_no_part_spec_def_args.ipp (contents, props changed)
   trunk/libs/config/test/no_part_spec_def_args_fail.cpp (contents, props changed)
   trunk/libs/config/test/no_part_spec_def_args_pass.cpp (contents, props changed)

Added: trunk/libs/config/test/boost_no_part_spec_def_args.ipp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/boost_no_part_spec_def_args.ipp 2008-04-22 04:34:43 EDT (Tue, 22 Apr 2008)
@@ -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;
+}
+
+}
+

Added: trunk/libs/config/test/no_part_spec_def_args_fail.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_part_spec_def_args_fail.cpp 2008-04-22 04:34:43 EDT (Tue, 22 Apr 2008)
@@ -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();
+}
+

Added: trunk/libs/config/test/no_part_spec_def_args_pass.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/no_part_spec_def_args_pass.cpp 2008-04-22 04:34:43 EDT (Tue, 22 Apr 2008)
@@ -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();
+}
+


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk