24 #ifndef PXR_BASE_VT_HASH_H
25 #define PXR_BASE_VT_HASH_H
30 #include <hboost/functional/hash.hpp>
36 namespace Vt_HashDetail {
46 template <
class T,
class = decltype(hash_value(std::declval<T>()))>
48 template <
class T,
class = decltype(TfHash()(std::declval<T>()))>
56 template <
class T,
class = decltype(hash_value(std::declval<T>()))>
63 template <
class T,
class = decltype(TfHash()(std::declval<T>()))>
87 return Vt_HashDetail::_IsHashable<T>(0);
101 #endif // PXR_BASE_VT_HASH_H
GLuint const GLfloat * val
constexpr bool VtIsHashable()
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
size_t VtHashValue(T const &val)
#define PXR_NAMESPACE_CLOSE_SCOPE
size_t _HashValueImpl(T const &val, int)
constexpr bool _IsHashable(int)
size_t hash_value(const CH_ChannelRef &ref)
VT_API void _IssueUnimplementedHashError(std::type_info const &t)