24 #ifndef PXR_BASE_VT_STREAM_OUT_H 25 #define PXR_BASE_VT_STREAM_OUT_H 28 #include "pxr/base/vt/api.h" 30 #include "pxr/base/tf/functionRef.h" 34 #include <type_traits> 36 PXR_NAMESPACE_OPEN_SCOPE
42 Vt_StreamOutGeneric(std::type_info
const &type,
44 std::ostream &stream);
49 Vt_StreamOutImpl(T
const &obj, std::ostream &stream,
int)
50 -> decltype(stream << obj)
58 Vt_StreamOutImpl(T
const &obj, std::ostream &stream,
long)
60 return Vt_StreamOutGeneric(
61 typeid(T), static_cast<void const *>(&obj), stream);
68 typename std::enable_if<!std::is_enum<T>::value, std::ostream &>::type
69 VtStreamOut(T
const &obj, std::ostream &stream)
73 return Vt_StreamOutImpl(obj, stream, 0);
75 template <
class EnumT>
76 typename std::enable_if<std::is_enum<EnumT>::value, std::ostream &>::type
77 VtStreamOut(EnumT
const &e, std::ostream &stream)
81 VT_API std::ostream &VtStreamOut(
bool const &, std::ostream &);
82 VT_API std::ostream &VtStreamOut(
char const &, std::ostream &);
83 VT_API std::ostream &VtStreamOut(
unsigned char const &, std::ostream &);
84 VT_API std::ostream &VtStreamOut(
signed char const &, std::ostream &);
85 VT_API std::ostream &VtStreamOut(
float const &, std::ostream &);
86 VT_API std::ostream &VtStreamOut(
double const &, std::ostream &);
90 VT_API
void VtStreamOutArray(std::ostream&,
const Vt_ShapeData*,
93 #ifdef PXR_PYTHON_SUPPORT_ENABLED 94 VT_API std::ostream &VtStreamOut(
class TfPyObjWrapper const &, std::ostream &);
95 #endif // PXR_PYTHON_SUPPORT_ENABLED 97 PXR_NAMESPACE_CLOSE_SCOPE
99 #endif // PXR_BASE_VT_STREAM_OUT_H This class provides a non-owning reference to a type-erased callable object with a specified signatur...
static TF_API std::string GetName(TfEnum val)
Returns the name associated with an enumerated value.
Boost Python object wrapper.