7 #ifndef PXR_BASE_VT_TRAITS_H
8 #define PXR_BASE_VT_TRAITS_H
16 #include <type_traits>
37 #define VT_TYPE_IS_CHEAP_TO_COPY(T) \
38 template <> struct VtValueTypeHasCheapCopy<TF_PP_EAT_PARENS(T)> \
96 #define VT_TYPE_IS_TYPED_VALUE_PROXY(T) \
97 template <> struct VtIsTypedValueProxy<TF_PP_EAT_PARENS(T)> \
102 typename std::enable_if<
113 using type =
typename std::decay<
123 #define VT_TYPE_IS_ERASED_VALUE_PROXY(T) \
124 template <> struct VtIsErasedValueProxy<TF_PP_EAT_PARENS(T)> \
131 std::integral_constant<
132 bool, VtIsTypedValueProxy<T>::value || VtIsErasedValueProxy<T>::value> {};
140 #define VT_VALUE_TYPE_CAN_COMPOSE(T) \
141 template <> struct VtValueTypeCanCompose<TF_PP_EAT_PARENS(T)> \
150 #define VT_VALUE_TYPE_CAN_TRANSFORM(T) \
151 template <> struct VtValueTypeCanTransform<TF_PP_EAT_PARENS(T)> \
156 #endif // PXR_BASE_VT_TRAITS_H
#define PXR_NAMESPACE_OPEN_SCOPE
T const & VtGetProxiedObject(T const &nonProxy)
GLint GLint GLsizei GLint GLenum GLenum type
typename std::decay< decltype(VtGetProxiedObject(std::declval< T >()))>::type type
A trait to detect instantiations of VtArray, specialized in array.h.
#define PXR_NAMESPACE_CLOSE_SCOPE
A trait to detect instantiations of VtArrayEdit, specialized in arrayEdit.h.