summaryrefslogtreecommitdiff
path: root/boost/aligned_storage.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/aligned_storage.hpp')
-rw-r--r--boost/aligned_storage.hpp50
1 files changed, 6 insertions, 44 deletions
diff --git a/boost/aligned_storage.hpp b/boost/aligned_storage.hpp
index ce277ab702..b5455f00b6 100644
--- a/boost/aligned_storage.hpp
+++ b/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