|
70 | 70 | # define ASIO_MSVC _MSC_VER |
71 | 71 | # endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC) |
72 | 72 | #endif // !defined(ASIO_MSVC) |
73 | | -#if defined(ASIO_MSVC) |
74 | | -# include <ciso646> // Needed for _HAS_CXX17. |
75 | | -#endif // defined(ASIO_MSVC) |
76 | 73 |
|
77 | 74 | // Clang / libc++ detection. |
78 | 75 | #if defined(__clang__) |
|
111 | 108 | # define ASIO_HAS_MOVE 1 |
112 | 109 | # endif // (_MSC_VER >= 1700) |
113 | 110 | # endif // defined(ASIO_MSVC) |
| 111 | +# if defined(__INTEL_CXX11_MODE__) |
| 112 | +# if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) |
| 113 | +# define BOOST_ASIO_HAS_MOVE 1 |
| 114 | +# endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) |
| 115 | +# if defined(__ICL) && (__ICL >= 1500) |
| 116 | +# define BOOST_ASIO_HAS_MOVE 1 |
| 117 | +# endif // defined(__ICL) && (__ICL >= 1500) |
| 118 | +# endif // defined(__INTEL_CXX11_MODE__) |
114 | 119 | # endif // !defined(ASIO_DISABLE_MOVE) |
115 | 120 | #endif // !defined(ASIO_HAS_MOVE) |
116 | 121 |
|
|
229 | 234 | // Support noexcept on compilers known to allow it. |
230 | 235 | #if !defined(ASIO_NOEXCEPT) |
231 | 236 | # if !defined(ASIO_DISABLE_NOEXCEPT) |
232 | | -# if (BOOST_VERSION >= 105300) |
| 237 | +# if defined(ASIO_HAS_BOOST_CONFIG) && (BOOST_VERSION >= 105300) |
233 | 238 | # define ASIO_NOEXCEPT BOOST_NOEXCEPT |
234 | 239 | # define ASIO_NOEXCEPT_OR_NOTHROW BOOST_NOEXCEPT_OR_NOTHROW |
235 | 240 | # elif defined(__clang__) |
|
761 | 766 | # if defined(__GNUC__) |
762 | 767 | # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) |
763 | 768 | # if defined(__GXX_EXPERIMENTAL_CXX0X__) |
764 | | -# if defined(_GLIBCXX_HAS_GTHREADS) |
765 | | -# define ASIO_HAS_STD_FUTURE 1 |
766 | | -# endif // defined(_GLIBCXX_HAS_GTHREADS) |
| 769 | +# define ASIO_HAS_STD_FUTURE 1 |
767 | 770 | # endif // defined(__GXX_EXPERIMENTAL_CXX0X__) |
768 | 771 | # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) |
769 | 772 | # endif // defined(__GNUC__) |
|
779 | 782 | #if !defined(ASIO_HAS_STD_STRING_VIEW) |
780 | 783 | # if !defined(ASIO_DISABLE_STD_STRING_VIEW) |
781 | 784 | # if defined(__clang__) |
782 | | -# if (__cplusplus >= 201703) |
783 | | -# if __has_include(<string_view>) |
784 | | -# define ASIO_HAS_STD_STRING_VIEW 1 |
785 | | -# endif // __has_include(<string_view>) |
786 | | -# endif // (__cplusplus >= 201703) |
787 | | -# endif // defined(__clang__) |
788 | | -# if defined(__GNUC__) |
| 785 | +# if defined(ASIO_HAS_CLANG_LIBCXX) |
| 786 | +# if (__cplusplus >= 201402) |
| 787 | +# if __has_include(<string_view>) |
| 788 | +# define ASIO_HAS_STD_STRING_VIEW 1 |
| 789 | +# endif // __has_include(<string_view>) |
| 790 | +# endif // (__cplusplus >= 201402) |
| 791 | +# else // defined(ASIO_HAS_CLANG_LIBCXX) |
| 792 | +# if (__cplusplus >= 201703) |
| 793 | +# if __has_include(<string_view>) |
| 794 | +# define ASIO_HAS_STD_STRING_VIEW 1 |
| 795 | +# endif // __has_include(<string_view>) |
| 796 | +# endif // (__cplusplus >= 201703) |
| 797 | +# endif // defined(ASIO_HAS_CLANG_LIBCXX) |
| 798 | +# elif defined(__GNUC__) |
789 | 799 | # if (__GNUC__ >= 7) |
790 | 800 | # if (__cplusplus >= 201703) |
791 | 801 | # define ASIO_HAS_STD_STRING_VIEW 1 |
792 | 802 | # endif // (__cplusplus >= 201703) |
793 | 803 | # endif // (__GNUC__ >= 7) |
794 | | -# endif // defined(__GNUC__) |
795 | | -# if defined(ASIO_MSVC) |
796 | | -# if (_MSC_VER >= 1910 && _HAS_CXX17) |
797 | | -# define ASIO_HAS_STD_STRING_VIEW |
798 | | -# endif // (_MSC_VER >= 1910 && _HAS_CXX17) |
| 804 | +# elif defined(ASIO_MSVC) |
| 805 | +# if (_MSC_VER >= 1910 && _MSVC_LANG >= 201703) |
| 806 | +# define ASIO_HAS_STD_STRING_VIEW 1 |
| 807 | +# endif // (_MSC_VER >= 1910 && _MSVC_LANG >= 201703) |
799 | 808 | # endif // defined(ASIO_MSVC) |
800 | 809 | # endif // !defined(ASIO_DISABLE_STD_STRING_VIEW) |
801 | 810 | #endif // !defined(ASIO_HAS_STD_STRING_VIEW) |
|
804 | 813 | #if !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) |
805 | 814 | # if !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW) |
806 | 815 | # if defined(__clang__) |
807 | | -# if (__cplusplus >= 201402) |
808 | | -# if __has_include(<experimental/string_view>) |
809 | | -# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 |
810 | | -# endif // __has_include(<experimental/string_view>) |
811 | | -# endif // (__cplusplus >= 201402) |
| 816 | +# if defined(ASIO_HAS_CLANG_LIBCXX) |
| 817 | +# if (_LIBCPP_VERSION < 7000) |
| 818 | +# if (__cplusplus >= 201402) |
| 819 | +# if __has_include(<experimental/string_view>) |
| 820 | +# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 |
| 821 | +# endif // __has_include(<experimental/string_view>) |
| 822 | +# endif // (__cplusplus >= 201402) |
| 823 | +# endif // (_LIBCPP_VERSION < 7000) |
| 824 | +# else // defined(ASIO_HAS_CLANG_LIBCXX) |
| 825 | +# if (__cplusplus >= 201402) |
| 826 | +# if __has_include(<experimental/string_view>) |
| 827 | +# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 |
| 828 | +# endif // __has_include(<experimental/string_view>) |
| 829 | +# endif // (__cplusplus >= 201402) |
| 830 | +# endif // // defined(ASIO_HAS_CLANG_LIBCXX) |
812 | 831 | # endif // defined(__clang__) |
813 | 832 | # if defined(__GNUC__) |
814 | 833 | # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4) |
|
853 | 872 | #if !defined(ASIO_HAS_STD_INVOKE_RESULT) |
854 | 873 | # if !defined(ASIO_DISABLE_STD_INVOKE_RESULT) |
855 | 874 | # if defined(ASIO_MSVC) |
856 | | -# if (_MSC_VER >= 1910 && _HAS_CXX17) |
| 875 | +# if (_MSC_VER >= 1911 && _MSVC_LANG >= 201703) |
857 | 876 | # define ASIO_HAS_STD_INVOKE_RESULT 1 |
858 | | -# endif // (_MSC_VER >= 1910 && _HAS_CXX17) |
| 877 | +# endif // (_MSC_VER >= 1911 && _MSVC_LANG >= 201703) |
859 | 878 | # endif // defined(ASIO_MSVC) |
860 | 879 | # endif // !defined(ASIO_DISABLE_STD_INVOKE_RESULT) |
861 | 880 | #endif // !defined(ASIO_HAS_STD_INVOKE_RESULT) |
|
0 commit comments