file
metaprogramming.hppNamespaces
- namespace btu
- namespace btu::common
Classes
-
template <class... Ts>struct btu::common::Overload
-
template <class T, class... Ts>struct btu::common::is_variant_member<T, std::variant<Ts...>>
-
template <class>struct btu::common::is_mutable_lambda_helper
-
template <class Ret, class Class, class... Args>struct btu::common::is_mutable_lambda_helper<Ret(Class::*)(Args...) const>
-
template <class Ret, class Class, class... Args>struct btu::common::is_mutable_lambda_helper<Ret(Class::*)(Args...)>
-
template <class T>struct btu::common::is_mutable_lambda
Typedefs
-
template <typename T, typename U>using is_equiv = std::
is_same<std:: remove_cvref_t<T>, std:: remove_cvref_t<U>>
Functions
-
template <class... Ts>Overload(Ts...) → Overload< Ts... >
-
template <class T, class U>auto forward_like(U&& x) → decltype(auto) constexpr noexcept
- See https://en.cppreference.com/w/cpp/utility/forward_
like. -
template <typename E>auto to_underlying(E e) → std::
underlying_type_t<E> constexpr
Variables
-
template <typename T, typename U>bool is_equiv_v constexpr
-
template <class T>bool is_mutable_lambda_v constexpr
-
template <class T, class... Ts>bool is_variant_member_v constexpr
Defines
- #define BETHUTIL_MAKE_ALL_ENUM_OPERATORS(a_type)
- #define BETHUTIL_MAKE_ENUM_OPERATOR_PAIR(a_type, a_op)
- #define BTU_FWD(...)
- #define BTU_MOV(...)