7 #ifndef PXR_BASE_TF_PY_OBJ_WRAPPER_H
8 #define PXR_BASE_TF_PY_OBJ_WRAPPER_H
15 #ifdef PXR_PYTHON_SUPPORT_ENABLED
20 #include "pxr/external/boost/python/object_fwd.hpp"
21 #include "pxr/external/boost/python/object_operators.hpp"
28 #include <type_traits>
39 static constexpr std::size_t
Size = 16;
40 static constexpr std::size_t
Align = 8;
76 #ifdef PXR_PYTHON_SUPPORT_ENABLED
78 :
public pxr_boost::python::api::object_operators<TfPyObjWrapper>
91 TF_API TfPyObjWrapper(
object obj);
98 object const &Get()
const {
115 friend inline size_t hash_value(TfPyObjWrapper
const &o) {
116 return (
size_t) o.ptr();
131 friend class pxr_boost::python::api::object_operators<TfPyObjWrapper>;
132 operator object const &()
const {
137 std::shared_ptr<object> _objectPtr;
141 "ABI break: Incompatible class sizes.");
143 "ABI break: Incompatible class alignments.");
145 #else // PXR_PYTHON_SUPPORT_ENABLED
151 #endif // PXR_PYTHON_SUPPORT_ENABLED
155 #endif // PXR_BASE_TF_PY_OBJ_WRAPPER_H
#define ARCH_PRAGMA_UNUSED_PRIVATE_FIELD
static constexpr std::size_t Align
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
static constexpr std::size_t Size
#define PXR_NAMESPACE_CLOSE_SCOPE
bool operator!=(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
size_t hash_value(const CH_ChannelRef &ref)