1 //////////////////////////////////////////////////////////////////////////////
3 // (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost
4 // Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 // See http://www.boost.org/libs/interprocess for documentation.
9 //////////////////////////////////////////////////////////////////////////////
10 #ifndef BOOST_INTERPROCESS_DETAIL_STD_FWD_HPP
11 #define BOOST_INTERPROCESS_DETAIL_STD_FWD_HPP
13 #ifndef BOOST_CONFIG_HPP
14 # include <boost/config.hpp>
17 #if defined(BOOST_HAS_PRAGMA_ONCE)
21 //////////////////////////////////////////////////////////////////////////////
22 // Standard predeclarations
23 //////////////////////////////////////////////////////////////////////////////
25 #include <boost/move/detail/std_ns_begin.hpp>
28 struct input_iterator_tag;
29 struct forward_iterator_tag;
30 struct bidirectional_iterator_tag;
31 struct random_access_iterator_tag;
36 #if defined(BOOST_MSVC) && (BOOST_MSVC >= 1800) &&defined(BOOST_DINKUMWARE_STDLIB)
37 #define BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG
38 // Compiler bug workaround. Previous versions (<= VC11)
39 // used dummy virtual functions
40 # pragma vtordisp(push, 2)
43 template<class CharT, class Traits>
46 template<class CharT, class Traits>
49 #ifdef BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG
50 # pragma vtordisp(pop)
51 # undef BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG
55 #include <boost/move/detail/std_ns_end.hpp>
57 #endif //#ifndef BOOST_INTERPROCESS_DETAIL_STD_FWD_HPP