Blame view

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