24 #ifndef PXR_BASE_VT_STREAM_OUT_H
25 #define PXR_BASE_VT_STREAM_OUT_H
28 #include "pxr/base/vt/api.h"
33 #include <type_traits>
35 PXR_NAMESPACE_OPEN_SCOPE
41 Vt_StreamOutGeneric(std::type_info
const &type,
43 std::ostream &stream);
48 Vt_StreamOutImpl(T
const &obj, std::ostream &stream,
int)
49 -> decltype(stream << obj)
57 Vt_StreamOutImpl(T
const &obj, std::ostream &stream,
long)
59 return Vt_StreamOutGeneric(
60 typeid(T), static_cast<void const *>(&obj), stream);
67 typename std::enable_if<!std::is_enum<T>::value, std::ostream &>::type
68 VtStreamOut(T
const &obj, std::ostream &stream)
72 return Vt_StreamOutImpl(obj, stream, 0);
74 template <
class EnumT>
75 typename std::enable_if<std::is_enum<EnumT>::value, std::ostream &>::type
76 VtStreamOut(EnumT
const &e, std::ostream &stream)
80 VT_API std::ostream &VtStreamOut(
bool const &, std::ostream &);
81 VT_API std::ostream &VtStreamOut(
char const &, std::ostream &);
82 VT_API std::ostream &VtStreamOut(
unsigned char const &, std::ostream &);
83 VT_API std::ostream &VtStreamOut(
signed char const &, std::ostream &);
84 VT_API std::ostream &VtStreamOut(
float const &, std::ostream &);
85 VT_API std::ostream &VtStreamOut(
double const &, std::ostream &);
87 class VtStreamOutIterator {
89 VT_API
virtual ~VtStreamOutIterator();
90 virtual void Next(std::ostream&) = 0;
95 VT_API
void VtStreamOutArray(VtStreamOutIterator*,
size_t size,
96 const Vt_ShapeData*, std::ostream&);
98 #ifdef PXR_PYTHON_SUPPORT_ENABLED
99 VT_API std::ostream &VtStreamOut(
class TfPyObjWrapper const &, std::ostream &);
100 #endif // PXR_PYTHON_SUPPORT_ENABLED
102 PXR_NAMESPACE_CLOSE_SCOPE
104 #endif // PXR_BASE_VT_STREAM_OUT_H
static TF_API std::string GetName(TfEnum val)
Returns the name associated with an enumerated value.
Boost Python object wrapper.