Index: boost/config/auto_link.hpp =================================================================== --- boost/config/auto_link.hpp (revision 84936) +++ boost/config/auto_link.hpp (working copy) @@ -151,11 +151,16 @@ // vc10: # define BOOST_LIB_TOOLSET "vc100" -# elif defined(BOOST_MSVC) +# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800) // vc11: # define BOOST_LIB_TOOLSET "vc110" +# elif defined(BOOST_MSVC) + + // vc12: +# define BOOST_LIB_TOOLSET "vc120" + # elif defined(__BORLANDC__) // CBuilder 6: Index: boost/config/compiler/visualc.hpp =================================================================== --- boost/config/compiler/visualc.hpp (revision 84936) +++ boost/config/compiler/visualc.hpp (working copy) @@ -218,10 +218,11 @@ #endif // _MSC_VER < 1700 // C++11 features supported by VC++ 11 (aka 2012) November 2012 CTP -// Because the CTP is unsupported, unrelease, and only alpha quality, -// it is only supported if BOOST_MSVC_ENABLE_2012_NOV_CTP is defined. +// and VC++ 2013 Preview. Because the CTP is unsupported, unrelease, +// and only alpha quality, it is only supported +// if BOOST_MSVC_ENABLE_2012_NOV_CTP is defined. // -#if _MSC_FULL_VER < 170051025 || !defined(BOOST_MSVC_ENABLE_2012_NOV_CTP) +#if _MSC_VER < 1800 && !(_MSC_FULL_VER >= 170051025 && defined(BOOST_MSVC_ENABLE_2012_NOV_CTP)) # define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS # define BOOST_NO_CXX11_RAW_LITERALS @@ -229,15 +230,25 @@ # define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX #endif +// C++11 features supported by VC++ 2013 Preview +// +#if _MSC_VER < 1800 +# define BOOST_NO_CXX11_DECLTYPE_N3276 +#endif + +// C++11 features supported by VC++ 2013 RTM +// +#if _MSC_FULL_VER <= 180020617 +# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +# define BOOST_NO_CXX11_DELETED_FUNCTIONS +# define BOOST_NO_CXX11_TEMPLATE_ALIASES +#endif + // C++11 features not supported by any versions #define BOOST_NO_CXX11_CHAR16_T #define BOOST_NO_CXX11_CHAR32_T #define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS #define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_TEMPLATE_ALIASES #define BOOST_NO_CXX11_UNICODE_LITERALS #define BOOST_NO_SFINAE_EXPR #define BOOST_NO_TWO_PHASE_NAME_LOOKUP @@ -280,6 +291,8 @@ # define BOOST_COMPILER_VERSION evc10 # elif _MSC_VER < 1800 # define BOOST_COMPILER_VERSION evc11 +# elif _MSC_VER < 1900 +# define BOOST_COMPILER_VERSION evc12 # else # if defined(BOOST_ASSERT_CONFIG) # error "Unknown EVC++ compiler version - please run the configure tests and report the results" @@ -305,6 +318,8 @@ # define BOOST_COMPILER_VERSION 10.0 # elif _MSC_VER < 1800 # define BOOST_COMPILER_VERSION 11.0 +# elif _MSC_VER < 1900 +# define BOOST_COMPILER_VERSION 12.0 # else # define BOOST_COMPILER_VERSION _MSC_VER # endif @@ -314,8 +329,8 @@ #endif // -// last known and checked version is 1700 (VC11, aka 2011): -#if (_MSC_VER > 1700) +// last known and checked version is 1800 (VC2013): +#if (_MSC_VER > 1800) # if defined(BOOST_ASSERT_CONFIG) # error "Unknown compiler version - please run the configure tests and report the results" # else Index: boost/config/stdlib/dinkumware.hpp =================================================================== --- boost/config/stdlib/dinkumware.hpp (revision 84936) +++ boost/config/stdlib/dinkumware.hpp (working copy) @@ -80,6 +80,10 @@ # define BOOST_NO_STD_ITERATOR_TRAITS #endif +#if defined(_MSC_VER) && (_MSC_VER >= 1800) +# include // for std::min and std::max +#endif + #if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310) // Intel C++ chokes over any non-trivial use of // this may be an overly restrictive define, but regex fails without it: Index: boost/mpl/assert.hpp =================================================================== --- boost/mpl/assert.hpp (revision 84936) +++ boost/mpl/assert.hpp (working copy) @@ -34,7 +34,7 @@ #include // make sure 'size_t' is placed into 'std' #include -#if BOOST_WORKAROUND(BOOST_MSVC, == 1700) +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1700) #include #endif @@ -244,7 +244,7 @@ BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -#if BOOST_WORKAROUND(BOOST_MSVC, == 1700) +#if BOOST_WORKAROUND(BOOST_MSVC, >= 1700) // BOOST_MPL_ASSERT((pred)) Index: tools/build/v2/tools/msvc.jam =================================================================== --- tools/build/v2/tools/msvc.jam (revision 84936) +++ tools/build/v2/tools/msvc.jam (working copy) @@ -749,8 +749,12 @@ # version from the path. # FIXME: We currently detect both Microsoft Visual Studio 9.0 and # 9.0express as 9.0 here. - if [ MATCH "(Microsoft Visual Studio 11)" : $(command) ] + if [ MATCH "(Microsoft Visual Studio 12)" : $(command) ] { + version = 12.0 ; + } + else if [ MATCH "(Microsoft Visual Studio 11)" : $(command) ] + { version = 11.0 ; } else if [ MATCH "(Microsoft Visual Studio 10)" : $(command) ] @@ -1385,7 +1389,7 @@ # Known toolset versions, in order of preference. -.known-versions = 11.0 10.0 10.0express 9.0 9.0express 8.0 8.0express 7.1 +.known-versions = 12.0 11.0 10.0 10.0express 9.0 9.0express 8.0 8.0express 7.1 7.1toolkit 7.0 6.0 ; # Version aliases. @@ -1396,6 +1400,7 @@ .version-alias-9 = 9.0 ; .version-alias-10 = 10.0 ; .version-alias-11 = 11.0 ; +.version-alias-12 = 12.0 ; # Names of registry keys containing the Visual C++ installation path (relative # to "HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft"). @@ -1409,6 +1414,7 @@ .version-10.0-reg = "VisualStudio\\10.0\\Setup\\VC" ; .version-10.0express-reg = "VCExpress\\10.0\\Setup\\VC" ; .version-11.0-reg = "VisualStudio\\11.0\\Setup\\VC" ; +.version-12.0-reg = "VisualStudio\\12.0\\Setup\\VC" ; # Visual C++ Toolkit 2003 does not store its installation path in the registry. # The environment variable 'VCToolkitInstallDir' and the default installation