diff options
Diffstat (limited to 'boost/interprocess/detail/std_fwd.hpp')
-rw-r--r-- | boost/interprocess/detail/std_fwd.hpp | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/boost/interprocess/detail/std_fwd.hpp b/boost/interprocess/detail/std_fwd.hpp index 098e67067c..282771c3e6 100644 --- a/boost/interprocess/detail/std_fwd.hpp +++ b/boost/interprocess/detail/std_fwd.hpp @@ -22,26 +22,8 @@ // Standard predeclarations ////////////////////////////////////////////////////////////////////////////// -#if defined(_LIBCPP_VERSION) - #define BOOST_INTERPROCESS_CLANG_INLINE_STD_NS - #pragma GCC diagnostic push - #if defined(__clang__) - #pragma GCC diagnostic ignored "-Wc++11-extensions" - #endif - #define BOOST_INTERPROCESS_STD_NS_BEG _LIBCPP_BEGIN_NAMESPACE_STD - #define BOOST_INTERPROCESS_STD_NS_END _LIBCPP_END_NAMESPACE_STD -#elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE_VERSION) //GCC >= 4.6 - #define BOOST_INTERPROCESS_STD_NS_BEG namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION - #define BOOST_INTERPROCESS_STD_NS_END _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE) //GCC >= 4.2 - #define BOOST_INTERPROCESS_STD_NS_BEG _GLIBCXX_BEGIN_NAMESPACE(std) - #define BOOST_INTERPROCESS_STD_NS_END _GLIBCXX_END_NAMESPACE -#else - #define BOOST_INTERPROCESS_STD_NS_BEG namespace std{ - #define BOOST_INTERPROCESS_STD_NS_END } -#endif - -BOOST_INTERPROCESS_STD_NS_BEG +#include <boost/move/detail/std_ns_begin.hpp> +BOOST_MOVE_STD_NS_BEG struct input_iterator_tag; struct forward_iterator_tag; @@ -51,17 +33,25 @@ struct random_access_iterator_tag; template<class T> struct char_traits; +#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1800) &&defined(BOOST_DINKUMWARE_STDLIB) +#define BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG +// Compiler bug workaround. Previous versions (<= VC11) +// used dummy virtual functions +# pragma vtordisp(push, 2) +#endif + template<class CharT, class Traits> class basic_ostream; template<class CharT, class Traits> class basic_istream; -BOOST_INTERPROCESS_STD_NS_END +#ifdef BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG +# pragma vtordisp(pop) +# undef BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG +#endif -#ifdef BOOST_INTERPROCESS_CLANG_INLINE_STD_NS - #pragma GCC diagnostic pop - #undef BOOST_INTERPROCESS_CLANG_INLINE_STD_NS -#endif //BOOST_INTERPROCESS_CLANG_INLINE_STD_NS +BOOST_MOVE_STD_NS_END +#include <boost/move/detail/std_ns_end.hpp> #endif //#ifndef BOOST_INTERPROCESS_DETAIL_STD_FWD_HPP |