17#ifndef LLVM_ADT_STLFORWARDCOMPAT_H 
   18#define LLVM_ADT_STLFORWARDCOMPAT_H 
   32template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   33inline constexpr T e_v          = 
T(0x1.5bf0a8b145769P+1); 
 
   34template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   36template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   37inline constexpr T ln2_v        = 
T(0x1.62e42fefa39efP-1); 
 
   38template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   39inline constexpr T ln10_v       = 
T(0x1.26bb1bbb55516P+1); 
 
   40template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   41inline constexpr T log2e_v      = 
T(0x1.71547652b82feP+0); 
 
   42template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   44template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   45inline constexpr T pi_v         = 
T(0x1.921fb54442d18P+1); 
 
   46template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   48template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   50template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   51inline constexpr T sqrt2_v      = 
T(0x1.6a09e667f3bcdP+0); 
 
   52template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   54template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   55inline constexpr T sqrt3_v      = 
T(0x1.bb67ae8584caaP+0); 
 
   56template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   58template <
typename T, 
typename = std::enable_if_t<std::is_
floating_po
int_v<T>>>
 
   59inline constexpr T phi_v        = 
T(0x1.9e3779b97f4a8P+0); 
 
 
   81  using type = std::remove_cv_t<std::remove_reference_t<T>>;
 
 
  102template <
class, 
template <
class...> 
class Op, 
class... Args> 
struct detector {
 
 
  105template <
template <
class...> 
class Op, 
class... Args>
 
  125template <
template <
class...> 
class Op, 
class... Args>
 
  132  template <
typename T> 
constexpr T &&
operator()(
T &&self) 
const noexcept {
 
  133    return std::forward<T>(self);
 
 
 
  143template <
typename Optional, 
typename Function,
 
  145std::optional<std::invoke_result_t<Function, Value>>
 
  148    return F(*std::forward<Optional>(O));
 
 
  155template <
typename Enum>
 
  157  return static_cast<std::underlying_type_t<Enum>
>(
E);
 
 
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
 
constexpr double inv_sqrt2
 
constexpr double inv_sqrt3
 
constexpr double inv_sqrtpi
 
This is an optimization pass for GlobalISel generic memory operations.
 
constexpr from_range_t from_range
 
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
 
DWARFExpression::Operation Op
 
typename detail::detector< void, Op, Args... >::value_t is_detected
Detects if a given trait holds for some set of arguments 'Args'.
 
std::optional< std::invoke_result_t< Function, Value > > transformOptional(Optional &&O, Function &&F)
 
Implement std::hash so that hash_code can be used in STL containers.
 
constexpr T && operator()(T &&self) const noexcept
 
std::remove_cv_t< std::remove_reference_t< T > > type