diff options
Diffstat (limited to '3rdParty/Boost/src/boost/aligned_storage.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/aligned_storage.hpp | 50 |
1 files changed, 6 insertions, 44 deletions
diff --git a/3rdParty/Boost/src/boost/aligned_storage.hpp b/3rdParty/Boost/src/boost/aligned_storage.hpp index ce277ab..b5455f0 100644 --- a/3rdParty/Boost/src/boost/aligned_storage.hpp +++ b/3rdParty/Boost/src/boost/aligned_storage.hpp @@ -48,10 +48,10 @@ struct aligned_storage_imp { char buf[size_]; - typename mpl::eval_if_c< + typename ::boost::mpl::eval_if_c< alignment_ == std::size_t(-1) - , mpl::identity<detail::max_align> - , type_with_alignment<alignment_> + , ::boost::mpl::identity< ::boost::detail::max_align > + , ::boost::type_with_alignment<alignment_> >::type align_; } data_; void* address() const { return const_cast<aligned_storage_imp*>(this); } @@ -76,12 +76,12 @@ class aligned_storage : #else public #endif - detail::aligned_storage::aligned_storage_imp<size_, alignment_> + ::boost::detail::aligned_storage::aligned_storage_imp<size_, alignment_> { public: // constants - typedef detail::aligned_storage::aligned_storage_imp<size_, alignment_> type; + typedef ::boost::detail::aligned_storage::aligned_storage_imp<size_, alignment_> type; BOOST_STATIC_CONSTANT( std::size_t @@ -96,25 +96,11 @@ public: // constants ) ); -#if defined(__GNUC__) &&\ - (__GNUC__ > 3) ||\ - (__GNUC__ == 3 && (__GNUC_MINOR__ > 2 ||\ - (__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >=3))) - private: // noncopyable aligned_storage(const aligned_storage&); aligned_storage& operator=(const aligned_storage&); -#else // gcc less than 3.2.3 - -public: // _should_ be noncopyable, but GCC compiler emits error - - aligned_storage(const aligned_storage&); - aligned_storage& operator=(const aligned_storage&); - -#endif // gcc < 3.2.3 workaround - public: // structors aligned_storage() @@ -132,46 +118,22 @@ public: // accessors return static_cast<type*>(this)->address(); } -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - const void* address() const { return static_cast<const type*>(this)->address(); } - -#else // MSVC6 - - const void* address() const; - -#endif // MSVC6 workaround - }; -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -// MSVC6 seems not to like inline functions with const void* returns, so we -// declare the following here: - -template <std::size_t S, std::size_t A> -const void* aligned_storage<S,A>::address() const -{ - return const_cast< aligned_storage<S,A>* >(this)->address(); -} - -#endif // MSVC6 workaround - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION // // Make sure that is_pod recognises aligned_storage<>::type // as a POD (Note that aligned_storage<> itself is not a POD): // template <std::size_t size_, std::size_t alignment_> -struct is_pod<boost::detail::aligned_storage::aligned_storage_imp<size_,alignment_> > +struct is_pod< ::boost::detail::aligned_storage::aligned_storage_imp<size_,alignment_> > BOOST_TT_AUX_BOOL_C_BASE(true) { BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true) }; -#endif } // namespace boost |