template< typename T > class thread_specific : public thread_specific_base { BOOST_STATIC_ASSERT_MSG(sizeof(T) <= sizeof(void*) && is_pod< T >::value, "Boost.Log: Thread-specific values must be PODs and must not exceed the size of a pointer"); //! Union to perform type casting union value_storage { void* as_pointer; T as_value; }; public: //! Default constructor BOOST_DEFAULTED_FUNCTION(thread_specific(), {}) //! Initializing constructor thread_specific(T const& value) { set(value); } //! Assignment thread_specific& operator= (T const& value) { set(value); return *this; } //! Accessor T get() const {
int main(int argc, char *argv[]) { thread_specific(); return 1; }