Add more macros for removed std lib features:

BOOST_NO_CXX98_FUNCTION_BASE
BOOST_NO_CXX98_BINDERS
Added new documentation section for features that have been removed from the standard.
This commit is contained in:
jzmaddock committed 2017-04-17 18:41:44 +01:00
1 parent 5193948558
commit 0e364efe0b
16 files changed
+387 -5

No files matched your search

+10 -1
View File
@@ -1,7 +1,7 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Mon Apr 17 12:45:44 2017
# This file was automatically generated on Mon Apr 17 18:35:54 2017
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -370,6 +370,15 @@ test-suite "BOOST_NO_CXX17_STD_APPLY" :
test-suite "BOOST_NO_CXX17_STD_INVOKE" :
[ run ../no_cxx17_std_invoke_pass.cpp ]
[ compile-fail ../no_cxx17_std_invoke_fail.cpp ] ;
test-suite "BOOST_NO_CXX98_BINDERS" :
[ run ../no_cxx98_binders_pass.cpp ]
[ compile-fail ../no_cxx98_binders_fail.cpp ] ;
test-suite "BOOST_NO_CXX98_FUNCTION_BASE" :
[ run ../no_cxx98_function_base_pass.cpp ]
[ compile-fail ../no_cxx98_function_base_fail.cpp ] ;
test-suite "BOOST_NO_CXX98_RANDOM_SHUFFLE" :
[ run ../no_cxx98_random_shuffle_pass.cpp ]
[ compile-fail ../no_cxx98_random_shuffle_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_HDR_FUNCTIONAL" :
[ run ../no_cxx_hdr_functional_pass.cpp ]
[ compile-fail ../no_cxx_hdr_functional_fail.cpp ] ;
+30
View File
@@ -0,0 +1,30 @@
// (C) Copyright John Maddock 2017.
// 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_CXX98_BINDERS
// TITLE: std::bind1st, prt_fun and mem_fun
// DESCRIPTION: The std lib has C++98 binders and adaptors.
#include <functional>
namespace boost_no_cxx98_binders{
int f2(int a, int b) { return a + b; }
struct A
{
int f1(int a) { return a; }
};
int test()
{
A a;
return std::bind1st(std::ptr_fun(f2), 0)(0) + std::bind1st(std::mem_fun(&A::f1), &a)(0);
}
}
+28
View File
@@ -0,0 +1,28 @@
// (C) Copyright John Maddock 2017.
// 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_CXX98_FUNCTION_BASE
// TITLE: std::unary_function and std::binary_function
// DESCRIPTION: The std lib has unary_function and binary_function.
#include <functional>
namespace boost_no_cxx98_function_base{
struct A : public std::unary_function<int, int>{};
struct B : public std::binary_function<int, int, int>{};
int test()
{
A a;
B b;
(void)a;
(void)b;
return static_cast<B::result_type>(0);
}
}
+23
View File
@@ -0,0 +1,23 @@
// (C) Copyright John Maddock 2017.
// 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_CXX98_RANDOM_SHUFFLE
// TITLE: std::random_shuffle
// DESCRIPTION: The std lib has random_shuffle.
#include <algorithm>
namespace boost_no_cxx98_random_shuffle{
int test()
{
int my_array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
std::random_shuffle(&my_array[0], &my_array[9] );
return 0;
}
}
+7
View File
@@ -1078,6 +1078,9 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX14_VARIABLE_TEMPLATES);
PRINT_MACRO(BOOST_NO_CXX17_STD_APPLY);
PRINT_MACRO(BOOST_NO_CXX17_STD_INVOKE);
PRINT_MACRO(BOOST_NO_CXX98_BINDERS);
PRINT_MACRO(BOOST_NO_CXX98_FUNCTION_BASE);
PRINT_MACRO(BOOST_NO_CXX98_RANDOM_SHUFFLE);
PRINT_MACRO(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS);
PRINT_MACRO(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS);
PRINT_MACRO(BOOST_NO_EXCEPTIONS);
@@ -1153,6 +1156,10 @@ void print_boost_macros()
+31 -1
View File
@@ -1,4 +1,4 @@
// This file was automatically generated on Mon Apr 17 12:45:44 2017
// This file was automatically generated on Mon Apr 17 18:35:54 2017
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -337,6 +337,21 @@ namespace boost_no_cxx17_std_apply = empty_boost;
#else
namespace boost_no_cxx17_std_invoke = empty_boost;
#endif
#ifndef BOOST_NO_CXX98_BINDERS
#include "boost_no_cxx98_binders.ipp"
#else
namespace boost_no_cxx98_binders = empty_boost;
#endif
#ifndef BOOST_NO_CXX98_FUNCTION_BASE
#include "boost_no_cxx98_function_base.ipp"
#else
namespace boost_no_cxx98_function_base = empty_boost;
#endif
#ifndef BOOST_NO_CXX98_RANDOM_SHUFFLE
#include "boost_no_cxx98_random_shuffle.ipp"
#else
namespace boost_no_cxx98_random_shuffle = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_HDR_FUNCTIONAL
#include "boost_no_cxx_hdr_functional.ipp"
#else
@@ -1606,6 +1621,21 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX17_STD_INVOKE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx98_binders::test())
{
std::cerr << "Failed test for BOOST_NO_CXX98_BINDERS at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx98_function_base::test())
{
std::cerr << "Failed test for BOOST_NO_CXX98_FUNCTION_BASE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx98_random_shuffle::test())
{
std::cerr << "Failed test for BOOST_NO_CXX98_RANDOM_SHUFFLE at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_hdr_functional::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_HDR_FUNCTIONAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 17 18:06:53 2017
// 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_CXX98_BINDERS
// This file should not compile, if it does then
// BOOST_NO_CXX98_BINDERS should not be defined.
// See file boost_no_cxx98_binders.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_CXX98_BINDERS
#include "boost_no_cxx98_binders.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx98_binders::test();
}
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 17 18:06:53 2017
// 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_CXX98_BINDERS
// This file should compile, if it does not then
// BOOST_NO_CXX98_BINDERS should be defined.
// See file boost_no_cxx98_binders.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_CXX98_BINDERS
#include "boost_no_cxx98_binders.ipp"
#else
namespace boost_no_cxx98_binders = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx98_binders::test();
}
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 17 18:35:53 2017
// 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_CXX98_FUNCTION_BASE
// This file should not compile, if it does then
// BOOST_NO_CXX98_FUNCTION_BASE should not be defined.
// See file boost_no_cxx98_function_base.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_CXX98_FUNCTION_BASE
#include "boost_no_cxx98_function_base.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx98_function_base::test();
}
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 17 18:35:53 2017
// 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_CXX98_FUNCTION_BASE
// This file should compile, if it does not then
// BOOST_NO_CXX98_FUNCTION_BASE should be defined.
// See file boost_no_cxx98_function_base.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_CXX98_FUNCTION_BASE
#include "boost_no_cxx98_function_base.ipp"
#else
namespace boost_no_cxx98_function_base = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx98_function_base::test();
}
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 17 17:54:47 2017
// 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_CXX98_RANDOM_SHUFFLE
// This file should not compile, if it does then
// BOOST_NO_CXX98_RANDOM_SHUFFLE should not be defined.
// See file boost_no_cxx98_random_shuffle.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_CXX98_RANDOM_SHUFFLE
#include "boost_no_cxx98_random_shuffle.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx98_random_shuffle::test();
}
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Mon Apr 17 17:54:47 2017
// 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_CXX98_RANDOM_SHUFFLE
// This file should compile, if it does not then
// BOOST_NO_CXX98_RANDOM_SHUFFLE should be defined.
// See file boost_no_cxx98_random_shuffle.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_CXX98_RANDOM_SHUFFLE
#include "boost_no_cxx98_random_shuffle.ipp"
#else
namespace boost_no_cxx98_random_shuffle = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx98_random_shuffle::test();
}