diff --git a/examples/constexpr14_sort_check.cpp b/examples/constexpr14_sort_check.cpp index 54a8435..3c676b2 100644 --- a/examples/constexpr14_sort_check.cpp +++ b/examples/constexpr14_sort_check.cpp @@ -1,4 +1,4 @@ -// Copyright 2013-2017 Antony Polukhin +// Copyright 2013-2018 Antony Polukhin // Distributed under the Boost Software License, Version 1.0. // (See the accompanying file LICENSE_1_0.txt @@ -6,7 +6,7 @@ #include -#if !defined(BOOST_NO_CXX14_CONSTEXPR) && !defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +#if !defined(BOOST_NO_CXX14_CONSTEXPR) && !defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && (!defined(_MSC_VER) || (_MSC_VER > 1916)) //[type_index_constexpr14_sort_check_example /*` @@ -68,7 +68,7 @@ int main() { } //] [/type_index_constexpr14_sort_check_example] -#else // #if !defined(BOOST_NO_CXX14_CONSTEXPR) && !defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) +#else // #if !defined(BOOST_NO_CXX14_CONSTEXPR) && !defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && (!defined(_MSC_VER) || (_MSC_VER > 1916)) int main() {} diff --git a/include/boost/type_index/detail/compile_time_type_info.hpp b/include/boost/type_index/detail/compile_time_type_info.hpp index 7a55350..93ac1f5 100644 --- a/include/boost/type_index/detail/compile_time_type_info.hpp +++ b/include/boost/type_index/detail/compile_time_type_info.hpp @@ -38,10 +38,10 @@ #elif defined(BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING) # include BOOST_PP_EXPAND( BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING ) -#elif defined(_MSC_VER) && defined (BOOST_NO_CXX11_NOEXCEPT) +#elif defined(_MSC_VER) && !defined(__clang__) && defined (BOOST_NO_CXX11_NOEXCEPT) // sizeof("const char *__cdecl boost::detail::ctti<") - 1, sizeof(">::n(void)") - 1 BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(40, 10, false, "") -#elif defined(_MSC_VER) && !defined (BOOST_NO_CXX11_NOEXCEPT) +#elif defined(_MSC_VER) && !defined(__clang__) && !defined (BOOST_NO_CXX11_NOEXCEPT) // sizeof("const char *__cdecl boost::detail::ctti<") - 1, sizeof(">::n(void) noexcept") - 1 BOOST_TYPE_INDEX_REGISTER_CTTI_PARSING_PARAMS(40, 19, false, "") #elif defined(__clang__) && defined(__APPLE__) @@ -257,7 +257,7 @@ struct ctti { || defined(__DMC__) constexpr unsigned int size = sizeof(__PRETTY_FUNCTION__); #else - boost::typeindex::detail::failed_to_get_function_name(); + boost::typeindex::detail::failed_to_get_function_name(); #endif boost::typeindex::detail::assert_compile_time_legths< @@ -284,10 +284,11 @@ struct ctti { || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) \ || (defined(__ICC) && (__ICC >= 600)) \ || defined(__ghs__) \ - || defined(__DMC__) + || defined(__DMC__) \ + || defined(__clang__) return boost::typeindex::detail::skip_begining< sizeof(__PRETTY_FUNCTION__) >(__PRETTY_FUNCTION__); #else - boost::typeindex::detail::failed_to_get_function_name(); + boost::typeindex::detail::failed_to_get_function_name(); return ""; #endif }