![]() |
LeechCraft
0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
|
#include <tuple>
Go to the source code of this file.
Classes | |
struct | LC::Util::detail::DecomposeMemberPtr< typename > |
struct | LC::Util::detail::DecomposeMemberPtr< R(C::*)> |
Namespaces | |
LC::Util | |
LC::Util::detail | |
Typedefs | |
template<typename F > | |
using | LC::Util::detail::CallTypeGetter_t = std::decay_t< decltype(*detail::TypeGetter(*static_cast< F * >(nullptr)))> |
template<SomeInvokable F, size_t Idx> | |
using | LC::Util::ArgType_t = std::tuple_element_t< Idx+1, detail::CallTypeGetter_t< F > > |
template<SomeInvokable F> | |
using | LC::Util::RetType_t = std::tuple_element_t< 0, detail::CallTypeGetter_t< F > > |
template<typename PtrType > | |
using | LC::Util::MemberTypeType_t = typename detail::DecomposeMemberPtr< PtrType >::Value_t |
template<typename PtrType > | |
using | LC::Util::MemberTypeStruct_t = typename detail::DecomposeMemberPtr< PtrType >::StructType_t |
template<auto Ptr> | |
using | LC::Util::MemberPtrType_t = MemberTypeType_t< decltype(Ptr)> |
template<auto Ptr> | |
using | LC::Util::MemberPtrStruct_t = MemberTypeStruct_t< decltype(Ptr)> |
Functions | |
template<typename R , typename... Args> | |
std::tuple< R, Args... > * | LC::Util::detail::TypeGetter (R(*)(Args...)) |
template<typename F > | |
auto | LC::Util::detail::TypeGetter (F &&f) -> decltype(TypeGetter(+f)) |
template<typename C , typename R , typename... Args> | |
std::tuple< R, Args... > * | LC::Util::detail::TypeGetter (R(C::*)(Args...) const) |
Variables | |
template<typename C > | |
decltype(TypeGetter(&C::operator())) | LC::Util::detail::TypeGetter (const C &c) |
template<typename F > | |
concept | LC::Util::SomeInvokable = requires (F f) { detail::TypeGetter (f); } |
template<SomeInvokable F> | |
constexpr auto | LC::Util::ArgCount_v = std::tuple_size_v<detail::CallTypeGetter_t<F>> - 1 |