1 ////////////////////////////////////////////////////////////////////////////// 2 // 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) 6 // 7 // See http://www.boost.org/libs/interprocess for documentation. 8 // 9 ////////////////////////////////////////////////////////////////////////////// 10 #ifndef BOOST_INTERPROCESS_DETAIL_STD_FWD_HPP 11 #define BOOST_INTERPROCESS_DETAIL_STD_FWD_HPP 12 13 #ifndef BOOST_CONFIG_HPP 14 # include <boost/config.hpp> 15 #endif 16 # 17 #if defined(BOOST_HAS_PRAGMA_ONCE) 18 # pragma once 19 #endif 20 21 ////////////////////////////////////////////////////////////////////////////// 22 // Standard predeclarations 23 ////////////////////////////////////////////////////////////////////////////// 24 25 #include <boost/move/detail/std_ns_begin.hpp> 26 BOOST_MOVE_STD_NS_BEG 27 28 struct input_iterator_tag; 29 struct forward_iterator_tag; 30 struct bidirectional_iterator_tag; 31 struct random_access_iterator_tag; 32 33 template<class T> 34 struct char_traits; 35 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) 41 #endif 42 43 template<class CharT, class Traits> 44 class basic_ostream; 45 46 template<class CharT, class Traits> 47 class basic_istream; 48 49 #ifdef BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG 50 # pragma vtordisp(pop) 51 # undef BOOST_INTERPROCESS_STD_FWD_MSVC_IOS_BUG 52 #endif 53 54 BOOST_MOVE_STD_NS_END 55 #include <boost/move/detail/std_ns_end.hpp> 56 57 #endif //#ifndef BOOST_INTERPROCESS_DETAIL_STD_FWD_HPP 58