Add support for C++11 thread_local.

This commit is contained in:
jzmaddock
2016-07-02 09:09:19 +01:00
parent fb27cce043
commit 4fc32ad70a
28 changed files with 162 additions and 6 deletions
+4 -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 Sat Feb 27 18:40:12 2016
# This file was automatically generated on Fri Jul 1 18:47:25 2016
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to the
@@ -319,6 +319,9 @@ test-suite "BOOST_NO_CXX11_SMART_PTR" :
test-suite "BOOST_NO_CXX11_STD_ALIGN" :
[ run ../no_cxx11_std_align_pass.cpp ]
[ compile-fail ../no_cxx11_std_align_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_THREAD_LOCAL" :
[ run ../no_cxx11_thread_local_pass.cpp ]
[ compile-fail ../no_cxx11_thread_local_fail.cpp ] ;
test-suite "BOOST_NO_CXX11_TRAILING_RESULT_TYPES" :
[ run ../no_cxx11_trailing_result_types_pass.cpp ]
[ compile-fail ../no_cxx11_trailing_result_types_fail.cpp ] ;
+24
View File
@@ -0,0 +1,24 @@
// (C) Copyright John Maddock 2012.
// 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_THREAD_LOCAL
// TITLE: thread_local
// DESCRIPTION: The compiler supports the thread_local storage specifier.
#include <string>
namespace boost_no_cxx11_thread_local{
int test()
{
static thread_local std::string local("hello");
return 0;
}
}
+2
View File
@@ -1057,6 +1057,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_CXX11_STATIC_ASSERT);
PRINT_MACRO(BOOST_NO_CXX11_STD_ALIGN);
PRINT_MACRO(BOOST_NO_CXX11_TEMPLATE_ALIASES);
PRINT_MACRO(BOOST_NO_CXX11_THREAD_LOCAL);
PRINT_MACRO(BOOST_NO_CXX11_TRAILING_RESULT_TYPES);
PRINT_MACRO(BOOST_NO_CXX11_UNICODE_LITERALS);
PRINT_MACRO(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX);
@@ -1139,6 +1140,7 @@ void print_boost_macros()
// END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL);
+11 -1
View File
@@ -1,4 +1,4 @@
// This file was automatically generated on Sat Feb 27 18:40:12 2016
// This file was automatically generated on Fri Jul 1 18:47:25 2016
// by libs/config/tools/generate.cpp
// Copyright John Maddock 2002-4.
// Use, modification and distribution are subject to the
@@ -252,6 +252,11 @@ namespace boost_no_cxx11_smart_ptr = empty_boost;
#else
namespace boost_no_cxx11_std_align = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_THREAD_LOCAL
#include "boost_no_cxx11_thread_local.ipp"
#else
namespace boost_no_cxx11_thread_local = empty_boost;
#endif
#ifndef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
#include "boost_no_cxx11_trailing_result_types.ipp"
#else
@@ -1491,6 +1496,11 @@ int main( int, char *[] )
std::cerr << "Failed test for BOOST_NO_CXX11_STD_ALIGN at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_thread_local::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_THREAD_LOCAL at: " << __FILE__ << ":" << __LINE__ << std::endl;
++error_count;
}
if(0 != boost_no_cxx11_trailing_result_types::test())
{
std::cerr << "Failed test for BOOST_NO_CXX11_TRAILING_RESULT_TYPES at: " << __FILE__ << ":" << __LINE__ << std::endl;
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Fri Jul 1 18:47:25 2016
// 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_THREAD_LOCAL
// This file should not compile, if it does then
// BOOST_NO_CXX11_THREAD_LOCAL should not be defined.
// See file boost_no_cxx11_thread_local.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_THREAD_LOCAL
#include "boost_no_cxx11_thread_local.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_cxx11_thread_local::test();
}
+37
View File
@@ -0,0 +1,37 @@
// This file was automatically generated on Fri Jul 1 18:47:25 2016
// 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_THREAD_LOCAL
// This file should compile, if it does not then
// BOOST_NO_CXX11_THREAD_LOCAL should be defined.
// See file boost_no_cxx11_thread_local.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_THREAD_LOCAL
#include "boost_no_cxx11_thread_local.ipp"
#else
namespace boost_no_cxx11_thread_local = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_cxx11_thread_local::test();
}