|
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, int > | popcount (T v) noexcept |
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, int > | countl_zero (T v) noexcept |
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, int > | countr_zero (T v) noexcept |
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, T > | rotl (T v, int s) noexcept |
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, T > | rotr (T v, int s) noexcept |
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, T > | bit_ceil (T v) noexcept |
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, T > | bit_width (T v) noexcept |
template<typename T> |
constexpr std::enable_if_t< std::is_unsigned_v< T >, T > | bit_floor (T v) noexcept |
template<typename T, typename... Args, typename Enable = std::void_t<decltype(::new (std::declval<void *>()) T(std::declval<Args>()...))>> |
T * | construct_at (T *ptr, Args &&... args) |
template<typename T> |
std::enable_if_t<!std::is_array_v< T >, std::unique_ptr< T > > | make_unique_for_overwrite () |
template<typename T> |
std::enable_if_t< q20::is_unbounded_array_v< T >, std::unique_ptr< T > > | make_unique_for_overwrite (std::size_t n) |
template<typename T, typename... Args> |
std::enable_if_t< q20::is_bounded_array_v< T > > | make_unique_for_overwrite (Args &&...)=delete |
template<typename T> |
constexpr T * | to_address (T *p) noexcept |
template<typename Ptr, typename std::enable_if_t<!std::is_pointer_v< Ptr >, bool > = true> |
constexpr auto | to_address (const Ptr &ptr) noexcept |
template<typename InputIterator, typename OutputIterator> |
constexpr OutputIterator | copy (InputIterator first, InputIterator last, OutputIterator dest) |
template<typename InputIterator, typename OutputIterator, typename UnaryPredicate> |
constexpr OutputIterator | copy_if (InputIterator first, InputIterator last, OutputIterator dest, UnaryPredicate pred) |
template<typename InputIterator, typename Size, typename OutputIterator> |
constexpr OutputIterator | copy_n (InputIterator first, Size n, OutputIterator dest) |
template<typename ForwardIterator, typename Value> |
constexpr void | fill (ForwardIterator first, ForwardIterator last, const Value &value) |
template<typename OutputIterator, typename Size, typename Value> |
constexpr OutputIterator | fill_n (OutputIterator first, Size n, const Value &value) |
template<typename ForwardIterator, typename BinaryPredicate = std::less<>> |
constexpr ForwardIterator | is_sorted_until (ForwardIterator first, ForwardIterator last, BinaryPredicate p={}) |
template<typename ForwardIterator, typename BinaryPredicate = std::less<>> |
constexpr bool | is_sorted (ForwardIterator first, ForwardIterator last, BinaryPredicate p={}) |
template<typename InputIterator, typename OutputIterator, typename UnaryFunction> |
constexpr OutputIterator | transform (InputIterator first, InputIterator last, OutputIterator dest, UnaryFunction op) |
template<class C> |
constexpr auto | ssize (const C &c) -> std::common_type_t< std::ptrdiff_t, std::make_signed_t< decltype(c.size())> > |
template<class T, std::ptrdiff_t N> |
constexpr std::ptrdiff_t | ssize (const T(&)[N]) noexcept |
template<typename T, typename U> |
constexpr std::vector< T, std::allocator< T > >::size_type | erase (std::vector< T, std::allocator< T > > &c, const U &value) |
template<typename T, typename Pred> |
constexpr std::vector< T, std::allocator< T > >::size_type | erase_if (std::vector< T, std::allocator< T > > &c, Pred pred) |
constexpr bool | is_constant_evaluated () noexcept |
template<class T, class U> |
constexpr bool | cmp_equal (T t, U u) noexcept |
template<class T, class U> |
constexpr bool | cmp_not_equal (T t, U u) noexcept |
template<class T, class U> |
constexpr bool | cmp_less (T t, U u) noexcept |
template<class T, class U> |
constexpr bool | cmp_greater (T t, U u) noexcept |
template<class T, class U> |
constexpr bool | cmp_less_equal (T t, U u) noexcept |
template<class T, class U> |
constexpr bool | cmp_greater_equal (T t, U u) noexcept |
template<class R, class T> |
constexpr bool | in_range (T t) noexcept |
template<typename T, typename U = T> |
constexpr T | exchange (T &obj, U &&newValue) |
template<typename T> |
std::enable_if_t< std::has_unique_object_representations_v< T > > | atomic_wait (const std::atomic< T > *atomic, T old) noexcept |
template<typename T> |
std::enable_if_t< std::has_unique_object_representations_v< T > > | atomic_wait_explicit (const std::atomic< T > *atomic, T old, std::memory_order mo) noexcept |
template<typename T> |
std::enable_if_t< std::has_unique_object_representations_v< T > > | atomic_notify_all (std::atomic< T > *atomic) |
template<typename T> |
std::enable_if_t< std::has_unique_object_representations_v< T > > | atomic_notify_one (std::atomic< T > *atomic) |