diff --git a/include/boost/core/addressof.hpp b/include/boost/core/addressof.hpp index 7dda247..6f7638d 100644 --- a/include/boost/core/addressof.hpp +++ b/include/boost/core/addressof.hpp @@ -59,8 +59,8 @@ private: template struct address_of { static BOOST_FORCEINLINE T* get(T& o, long) BOOST_NOEXCEPT { - return reinterpret_cast(&const_cast< - char&>(reinterpret_cast(o))); + return reinterpret_cast(& + const_cast(reinterpret_cast(o))); } static BOOST_FORCEINLINE T* get(T* p, int) BOOST_NOEXCEPT { return p; @@ -115,8 +115,7 @@ struct address_of { defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ defined(BOOST_NO_CXX11_CONSTEXPR) || \ defined(BOOST_NO_CXX11_DECLTYPE) || \ - (defined(BOOST_MSVC) && \ - BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1900))) + defined(BOOST_MSVC_FULL_VER) #define BOOST_CORE_NO_CONSTEXPR_ADDRESSOF template @@ -181,7 +180,7 @@ typename addressof_rvalue::type addressof_declval() BOOST_NOEXCEPT; template -struct addressof_make_void { +struct addressof_void { typedef void type; }; @@ -191,9 +190,8 @@ struct addressof_member_operator { }; template -struct addressof_member_operator().operator&())>::type> { +struct addressof_member_operator().operator&())>::type> { static constexpr bool value = true; }; @@ -210,9 +208,8 @@ struct addressof_non_member_operator { }; template -struct addressof_non_member_operator()))>::type> { +struct addressof_non_member_operator()))>::type> { static constexpr bool value = true; }; @@ -223,8 +220,7 @@ struct addressof_expression { template struct addressof_expression())>::type> { + typename addressof_void())>::type> { static constexpr bool value = true; };