32a33 > #include "tbb_stddef.h" 94a96,101 > template > struct aligned_storage > { > const static bool value = false; > }; > 99a107 > const static bool value = true; \ 108a117 > const static bool value = true; \ 115a125 > const static bool value = true; 213a224,242 > //We only do type checking for CPP11. > //TODO:; it is doable to involve type checking for CPP03, by implementing the std::is_enum, std::is_integral and is_pointer. > #ifdef __TBB_CPP11_TYPE_PROPERTIES_PRESENT > template > struct is_atomic_compatiable{ > const static bool value = std::is_enum::value || std::is_integral::value || std::is_pointer::value; > }; > #else > template > struct is_atomic_compatiable{ > const static bool value = true; > }; > #endif > > template > struct atomic_not_support_type{ > const static bool value = false; > }; > 404c433 < template --- > template::value ||internal::aligned_storage::value> > 415a445,449 > template > struct atomic > > { > __TBB_STATIC_ASSERT(internal::atomic_not_support_type::value, "tbb::atomic only supports integral type, enumeration type and pointer type"); > };