8 #ifndef PXR_BASE_TF_FUNCTION_TRAITS_H
9 #define PXR_BASE_TF_FUNCTION_TRAITS_H
17 #include <type_traits>
22 template <
class Ret,
class ArgTypeList>
31 using NthArg = std::tuple_element_t<N, ArgsTuple>;
36 template <
class FuncSig>
38 typename FuncSig::ReturnType,
48 decltype(&std::remove_reference<Fn>::type::operator())
54 template <
class Ret,
class Cls,
class... Args>
59 template <
class Ret,
class Cls,
class... Args>
64 template <
class Ret,
class Cls,
class... Args>
70 template <
class Ret,
class Cls,
class... Args>
75 template <
class Ret,
class Cls,
class... Args>
80 template <
class Ret,
class Cls,
class... Args>
87 template <
class Ret,
class... Args>
99 #endif // PXR_BASE_TF_FUNCTION_TRAITS_H
std::tuple_element_t< N, ArgsTuple > NthArg
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
static const size_t Arity
typename Tf_GetFuncSig< Fn >::Type TfFunctionTraits
TfMetaApply< std::tuple, ArgTypes > ArgsTuple