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