24 #ifndef _GUSD_UT_STATICINIT_H_
25 #define _GUSD_UT_STATICINIT_H_
31 #include <type_traits>
52 template <
typename Fn>
57 using T = decltype(std::declval<Fn&>()());
60 : _val(NULL), _fn(fn), _lock() {}
70 {
if(_val)
delete _val; }
95 template <
typename Fn>
GusdUT_StaticValHolder(Fn &fn)
decltype(std::declval< Fn & >()()) T
GusdUT_StaticValHolder< Fn > GusdUT_StaticVal(const Fn &fn)
~GusdUT_StaticValHolder()
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
GusdUT_StaticValHolder< Fn > This
GusdUT_StaticValHolder(This &&o) noexcept