7 #ifndef PXR_BASE_VT_VISIT_VALUE_H
8 #define PXR_BASE_VT_VISIT_VALUE_H
16 namespace Vt_ValueVisitDetail {
21 template <
class T,
class Visitor,
22 class = decltype(std::declval<Visitor>()(std::declval<T>()))>
28 template <
class T,
class Visitor>
31 return std::forward<Visitor>(visitor)(val);
87 template <
class Visitor>
95 #define VT_CASE_FOR_TYPE_INDEX(unused, elem) \
96 case VtGetKnownValueTypeIndex<VT_TYPE(elem)>(): \
97 return Vt_ValueVisitDetail::Visit<VT_TYPE(elem)>( \
98 value, std::forward<Visitor>(visitor), 0); \
101 #undef VT_CASE_FOR_TYPE_INDEX
105 return Vt_ValueVisitDetail::Visit<VtValue>(
106 value, std::forward<Visitor>(visitor), 0);
113 #endif // PXR_BASE_VT_VISIT_VALUE_H
T const & UncheckedGet() const &
GLsizei const GLfloat * value
auto VtVisitValue(VtValue const &value, Visitor &&visitor)
#define VT_CASE_FOR_TYPE_INDEX(unused, elem)
int GetKnownValueTypeIndex() const
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define TF_PP_SEQ_FOR_EACH(_macro, data, seq)
#define PXR_NAMESPACE_CLOSE_SCOPE
auto Visit(VtValue const &val, Visitor &&visitor, int)