|
| template<class Ptr> |
| auto | llvm::to_address (const Ptr &P) |
| | Returns a raw pointer that represents the same address as the argument.
|
| template<class T> |
| constexpr T * | llvm::to_address (T *P) |
| template<typename FnT, typename... ArgsT> |
| constexpr std::invoke_result_t< FnT, ArgsT... > | llvm::invoke (FnT &&Fn, ArgsT &&...Args) |
| | C++20 constexpr invoke.
|
| template<typename Optional, typename Function, typename Value = typename llvm::remove_cvref_t<Optional>::value_type> |
| std::optional< std::invoke_result_t< Function, Value > > | llvm::transformOptional (Optional &&O, Function &&F) |
| template<typename Enum> |
| constexpr std::underlying_type_t< Enum > | llvm::to_underlying (Enum E) |
| | Returns underlying integer value of an enum.
|
| template<typename FnT, typename... BindArgsT> |
| constexpr auto | llvm::bind_front (FnT &&Fn, BindArgsT &&...BindArgs) |
| | C++20 bind_front.
|
| template<auto ConstFn, typename... BindArgsT> |
| constexpr auto | llvm::bind_front (BindArgsT &&...BindArgs) |
| | C++26 bind_front with compile-time callable.
|
| template<typename FnT, typename... BindArgsT> |
| constexpr auto | llvm::bind_back (FnT &&Fn, BindArgsT &&...BindArgs) |
| | C++23 bind_back.
|
| template<auto ConstFn, typename... BindArgsT> |
| constexpr auto | llvm::bind_back (BindArgsT &&...BindArgs) |
| | C++26 bind_back with compile-time callable.
|
|
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::e_v = T(0x1.5bf0a8b145769P+1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::egamma_v = T(0x1.2788cfc6fb619P-1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::ln2_v = T(0x1.62e42fefa39efP-1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::ln10_v = T(0x1.26bb1bbb55516P+1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::log2e_v = T(0x1.71547652b82feP+0) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::log10e_v = T(0x1.bcb7b1526e50eP-2) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::pi_v = T(0x1.921fb54442d18P+1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::inv_pi_v = T(0x1.45f306dc9c883P-2) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::inv_sqrtpi_v = T(0x1.20dd750429b6dP-1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::sqrt2_v = T(0x1.6a09e667f3bcdP+0) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::inv_sqrt2_v = T(0x1.6a09e667f3bcdP-1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::sqrt3_v = T(0x1.bb67ae8584caaP+0) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::inv_sqrt3_v = T(0x1.279a74590331cP-1) |
| template<typename T, typename = std::enable_if_t<std::is_floating_point_v<T>>> |
| constexpr T | llvm::numbers::phi_v = T(0x1.9e3779b97f4a8P+0) |
| constexpr double | llvm::numbers::e = e_v<double> |
| constexpr double | llvm::numbers::egamma = egamma_v<double> |
| constexpr double | llvm::numbers::ln2 = ln2_v<double> |
| constexpr double | llvm::numbers::ln10 = ln10_v<double> |
| constexpr double | llvm::numbers::log2e = log2e_v<double> |
| constexpr double | llvm::numbers::log10e = log10e_v<double> |
| constexpr double | llvm::numbers::pi = pi_v<double> |
| constexpr double | llvm::numbers::inv_pi = inv_pi_v<double> |
| constexpr double | llvm::numbers::inv_sqrtpi = inv_sqrtpi_v<double> |
| constexpr double | llvm::numbers::sqrt2 = sqrt2_v<double> |
| constexpr double | llvm::numbers::inv_sqrt2 = inv_sqrt2_v<double> |
| constexpr double | llvm::numbers::sqrt3 = sqrt3_v<double> |
| constexpr double | llvm::numbers::inv_sqrt3 = inv_sqrt3_v<double> |
| constexpr double | llvm::numbers::phi = phi_v<double> |
| constexpr from_range_t | llvm::from_range {} |
This file contains library features backported from future STL versions.
These should be replaced with their STL counterparts as the C++ version LLVM is compiled with is updated.
Definition in file STLForwardCompat.h.