]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/math/tools/concepts.hpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / boost / math / tools / concepts.hpp
1 // (C) Copyright Matt Borland 2022.
2 // Use, modification and distribution are subject to the
3 // Boost Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 //
6 // Macros that substitute for STL concepts or typename depending on availability of <concepts>
7
8 #ifndef BOOST_MATH_TOOLS_CONCEPTS_HPP
9 #define BOOST_MATH_TOOLS_CONCEPTS_HPP
10
11 // LLVM clang supports concepts but apple's clang does not fully support at version 13
12 // See: https://en.cppreference.com/w/cpp/compiler_support/20
13 #if (__cplusplus > 202000L || _MSVC_LANG > 202000L)
14 # if __has_include(<concepts>) && (!defined(__APPLE__) || (defined(__APPLE__) && defined(__clang__) && __clang__ > 13))
15 # include <concepts>
16 # define BOOST_MATH_FLOATING_POINT_TYPE std::floating_point
17 # else
18 # define BOOST_MATH_FLOATING_POINT_TYPE typename
19 # endif
20 #else
21 # define BOOST_MATH_FLOATING_POINT_TYPE typename
22 #endif
23
24 #endif // BOOST_MATH_TOOLS_CONCEPTS_HPP