• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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