1 ////////////////////////////////////////////////////////////////////////////// 2 // 3 // (C) Copyright Ion Gaztanaga 2005-2013. 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/container for documentation. 8 // 9 ////////////////////////////////////////////////////////////////////////////// 10 11 #ifndef BOOST_CONTAINER_DETAIL_WORKAROUND_HPP 12 #define BOOST_CONTAINER_DETAIL_WORKAROUND_HPP 13 14 #ifndef BOOST_CONFIG_HPP 15 # include <boost/config.hpp> 16 #endif 17 18 #if defined(BOOST_HAS_PRAGMA_ONCE) 19 # pragma once 20 #endif 21 22 #include <boost/container/detail/config_begin.hpp> 23 24 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)\ 25 && !defined(BOOST_INTERPROCESS_DISABLE_VARIADIC_TMPL) 26 #define BOOST_CONTAINER_PERFECT_FORWARDING 27 #endif 28 29 #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && defined(__GXX_EXPERIMENTAL_CXX0X__)\ 30 && (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40700) 31 #define BOOST_CONTAINER_UNIMPLEMENTED_PACK_EXPANSION_TO_FIXED_LIST 32 #endif 33 34 #if !defined(BOOST_FALLTHOUGH) 35 #define BOOST_CONTAINER_FALLTHOUGH 36 #else 37 #define BOOST_CONTAINER_FALLTHOUGH BOOST_FALLTHOUGH; 38 #endif 39 40 //Macros for documentation purposes. For code, expands to the argument 41 #define BOOST_CONTAINER_IMPDEF(TYPE) TYPE 42 #define BOOST_CONTAINER_SEEDOC(TYPE) TYPE 43 44 //Macros for memset optimization. In most platforms 45 //memsetting pointers and floatings is safe and faster. 46 // 47 //If your platform does not offer these guarantees 48 //define these to value zero. 49 #ifndef BOOST_CONTAINER_MEMZEROED_FLOATING_POINT_IS_NOT_ZERO 50 #define BOOST_CONTAINER_MEMZEROED_FLOATING_POINT_IS_ZERO 1 51 #endif 52 53 #ifndef BOOST_CONTAINER_MEMZEROED_POINTER_IS_NOT_NULL 54 #define BOOST_CONTAINER_MEMZEROED_POINTER_IS_NULL 55 #endif 56 57 #define BOOST_CONTAINER_DOC1ST(TYPE1, TYPE2) TYPE2 58 #define BOOST_CONTAINER_I , 59 #define BOOST_CONTAINER_DOCIGN(T) T 60 #define BOOST_CONTAINER_DOCONLY(T) 61 62 #include <boost/container/detail/config_end.hpp> 63 64 #endif //#ifndef BOOST_CONTAINER_DETAIL_WORKAROUND_HPP 65