![]() |
LeechCraft
0.6.70-10870-g558588d6ec
Modular cross-platform feature rich live environment.
|
#include <tuple>
#include <type_traits>
Go to the source code of this file.
Classes | |
struct | LeechCraft::Util::detail::DecomposeMemberPtr< typename > |
struct | LeechCraft::Util::detail::DecomposeMemberPtr< R(C::*)> |
Namespaces | |
LeechCraft | |
LeechCraft::Util | |
LeechCraft::Util::detail | |
Typedefs | |
template<typename T > | |
using | LeechCraft::Util::detail::VoidSafe = std::conditional_t< std::is_same< T, void > {}, ReturnsVoid, T > |
template<typename F > | |
using | LeechCraft::Util::detail::RetTypeRaw_t = std::tuple_element_t< 0, decltype(TypeGetter(*static_cast< F * >(nullptr)))> |
template<typename F , size_t Idx> | |
using | LeechCraft::Util::ArgType_t = std::tuple_element_t< Idx+1, decltype(detail::TypeGetter(*static_cast< F * >(nullptr)))> |
template<typename F > | |
using | LeechCraft::Util::RetType_t = std::conditional_t< std::is_same_v< detail::RetTypeRaw_t< F >, detail::ReturnsVoid >, void, detail::RetTypeRaw_t< F > > |
template<auto Ptr> | |
using | LeechCraft::Util::MemberPtrType_t = typename detail::DecomposeMemberPtr< decltype(Ptr)>::Value_t |
template<auto Ptr> | |
using | LeechCraft::Util::MemberPtrStruct_t = typename detail::DecomposeMemberPtr< decltype(Ptr)>::StructType_t |
Functions | |
template<typename R , typename... Args> | |
std::tuple< VoidSafe< R >, Args... > | LeechCraft::Util::detail::TypeGetter (R(*)(Args...)) |
template<typename F > | |
auto | LeechCraft::Util::detail::TypeGetter (F &&f) -> decltype(TypeGetter(+f)) |
template<typename C , typename R , typename... Args> | |
std::tuple< VoidSafe< R >, Args... > | LeechCraft::Util::detail::TypeGetter (R(C::*)(Args...) const) |
Variables | |
template<typename C > | |
decltype(TypeGetter(&C::operator())) | LeechCraft::Util::detail::TypeGetter (const C &c) |