Add new macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS

This commit is contained in:
jzmaddock
2014-08-25 18:37:18 +01:00
parent eec8085549
commit 4dc7c66c4d
11 changed files with 3256 additions and 3124 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -640,6 +640,9 @@ accepted in Madrid, March 2011.
[[`BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions.
]]
[[BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS][The compiler does not support
expanding a variadic template parameter pack into a template containing one or more
fixed arguments]]
[[`BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS`][The compiler does not support
defaulted (`= default`) functions in access control sections other than `public`. Public defaulted
functions may still be supported, as indicated by `BOOST_NO_CXX11_DEFAULTED_FUNCTIONS`. Some

View File

@ -214,6 +214,7 @@
# define BOOST_NO_CXX11_FINAL
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
// C++0x features in 4.8.n and later

View File

@ -962,6 +962,13 @@ namespace std{ using ::type_info; }
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
#define BOOST_HAS_VARIADIC_TMPL
#endif
//
// Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS when
// BOOST_NO_CXX11_VARIADIC_TEMPLATES is set:
//
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS)
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#endif
//
// Finish off with checks for macros that are depricated / no longer supported,

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
// Copyright (C) 2007 Douglas Gregor
// 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_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
// TITLE: C++0x variadic templates unavailable
// DESCRIPTION: The compiler does not support C++0x variadic templates
namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs {
template<char one, char two, char... Others> struct char_tuple {};
template<char... Args> struct super_class : public char_tuple<Args...> {};
int test()
{
super_class<'a', 'b', 'c', 'd'> sc;
(void)sc;
return 0;
}
}

View File

@ -1011,6 +1011,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS);
PRINT_MACRO(BOOST_NO_CXX11_EXTERN_TEMPLATE);
PRINT_MACRO(BOOST_NO_CXX11_FINAL);
PRINT_MACRO(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS);
PRINT_MACRO(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS);
PRINT_MACRO(BOOST_NO_CXX11_HDR_ARRAY);
PRINT_MACRO(BOOST_NO_CXX11_HDR_ATOMIC);
@ -1134,6 +1135,7 @@ void print_boost_macros()
// END GENERATED BLOCK

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,37 @@
// This file was automatically generated on Mon Aug 25 18:12:27 2014
// 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$
//
// Test file for macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
// This file should not compile, if it does then
// BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS should not be defined.
// See file boost_no_fixed_len_variadic_templates.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_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#include "boost_no_fixed_len_variadic_templates.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test();
}

View File

@ -0,0 +1,37 @@
// This file was automatically generated on Mon Aug 25 18:12:27 2014
// 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$
//
// Test file for macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
// This file should compile, if it does not then
// BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS should be defined.
// See file boost_no_fixed_len_variadic_templates.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_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
#include "boost_no_fixed_len_variadic_templates.ipp"
#else
namespace boost_no_cxx11_fixed_length_variadic_template_expansion_packs = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx11_fixed_length_variadic_template_expansion_packs::test();
}