25 #ifndef PXR_BASE_TF_FUNCTION_TRAITS_H
26 #define PXR_BASE_TF_FUNCTION_TRAITS_H
34 #include <type_traits>
39 template <
class Ret,
class ArgTypeList>
48 using NthArg = std::tuple_element_t<N, ArgsTuple>;
53 template <
class FuncSig>
55 typename FuncSig::ReturnType,
65 decltype(&std::remove_reference<Fn>::type::operator())
71 template <
class Ret,
class Cls,
class... Args>
76 template <
class Ret,
class Cls,
class... Args>
81 template <
class Ret,
class Cls,
class... Args>
87 template <
class Ret,
class Cls,
class... Args>
92 template <
class Ret,
class Cls,
class... Args>
97 template <
class Ret,
class Cls,
class... Args>
104 template <
class Ret,
class... Args>
116 #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