24 #ifndef PXR_BASE_TF_PY_OBJ_WRAPPER_H
25 #define PXR_BASE_TF_PY_OBJ_WRAPPER_H
32 #ifdef PXR_PYTHON_SUPPORT_ENABLED
37 #include <hboost/functional/hash.hpp>
38 #include <hboost/python/object_fwd.hpp>
39 #include <hboost/python/object_operators.hpp>
46 #include <type_traits>
57 static constexpr std::size_t
Size = 16;
58 static constexpr std::size_t
Align = 8;
94 #ifdef PXR_PYTHON_SUPPORT_ENABLED
96 :
public hboost::python::api::object_operators<TfPyObjWrapper>
109 TF_API TfPyObjWrapper(
object obj);
116 object const &Get()
const {
133 friend inline size_t hash_value(TfPyObjWrapper
const &o) {
134 return (
size_t) o.ptr();
149 friend class hboost::python::api::object_operators<TfPyObjWrapper>;
150 operator object const &()
const {
155 std::shared_ptr<object> _objectPtr;
159 "ABI break: Incompatible class sizes.");
161 "ABI break: Incompatible class alignments.");
163 #else // PXR_PYTHON_SUPPORT_ENABLED
169 #endif // PXR_PYTHON_SUPPORT_ENABLED
173 #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)