1// (C) Copyright John Maddock 2012. 2// Use, modification and distribution are subject to the 3// Boost Software License, Version 1.0. (See accompanying file 4// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 6// See http://www.boost.org/libs/config for most recent version. 7 8// MACRO: BOOST_NO_CXX11_THREAD_LOCAL 9// TITLE: thread_local 10// DESCRIPTION: The compiler supports the thread_local storage specifier. 11 12#include <string> 13 14 15namespace boost_no_cxx11_thread_local{ 16 17template <class T> 18int check_local(int n) 19{ 20 static thread_local T s(n, ' '); 21 static thread_local int size = s.size(); 22 if(size != n) 23 { 24 s = T(n, ' '); 25 size = n; 26 } 27 return size; 28} 29 30int test() 31{ 32 return check_local<std::string>(5) == 5 ? 0 : 1; 33} 34 35} 36 37