• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2009-2016 Vladimir Batov.
2 // Use, modification and distribution are subject to the Boost Software License,
3 // Version 1.0. See http://www.boost.org/LICENSE_1_0.txt.
4 
5 #ifndef BOOST_CONVERT_FORWARD_HPP
6 #define BOOST_CONVERT_FORWARD_HPP
7 
8 #include <boost/config.hpp>
9 #include <boost/version.hpp>
10 #include <boost/optional.hpp>
11 
12 #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
13 #undef BOOST_CONVERT_CXX11
14 #else
15 #define BOOST_CONVERT_CXX11
16 #endif
17 
18 // Intel 12.0 and lower have broken SFINAE
19 #if defined(BOOST_INTEL) && (BOOST_INTEL <= 1200)
20 #   define BOOST_CONVERT_IS_NOT_SUPPORTED
21 #endif
22 
23 // No C++11 support
24 #if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION <= 40600)
25 #   define BOOST_CONVERT_IS_NOT_SUPPORTED
26 #endif
27 
28 // MSVC-11 and lower have broken SFINAE
29 #if defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
30 #   define BOOST_CONVERT_IS_NOT_SUPPORTED
31 #endif
32 
33 #if defined(_MSC_VER)
34 
35 //MSVC++ 7.0  _MSC_VER == 1300
36 //MSVC++ 7.1  _MSC_VER == 1310 (Visual Studio 2003)
37 //MSVC++ 8.0  _MSC_VER == 1400 (Visual Studio 2005)
38 //MSVC++ 9.0  _MSC_VER == 1500 (Visual Studio 2008)
39 //MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)
40 //MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)
41 //MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)
42 //MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)
43 //MSVC++ 15.0 _MSC_VER == 1910 (Visual Studio 2017)
44 
45 #   pragma warning(disable: 4244)
46 #   pragma warning(disable: 4224)
47 #   pragma warning(disable: 4996)
48 #   pragma warning(disable: 4180) // qualifier applied to function type has no meaning
49 #   pragma warning(disable: 4100) // unreferenced formal parameter
50 #   pragma warning(disable: 4146) // unary minus operator applied to unsigned type
51 
52 #if _MSC_VER < 1900 /* MSVC-14 defines real snprintf()... just about time! */
53 #   define snprintf _snprintf
54 #endif
55 
56 #endif
57 
58 #endif // BOOST_CONVERT_FORWARD_HPP
59