24#ifndef PXR_BASE_TF_SINGLETON_H
25#define PXR_BASE_TF_SINGLETON_H
112PXR_NAMESPACE_OPEN_SCOPE
142 ARCH_PRAGMA_UNDEFINED_VAR_TEMPLATE
143 T *p = _instance.load();
145 p = _CreateInstance(_instance);
160 ARCH_PRAGMA_UNDEFINED_VAR_TEMPLATE
161 return static_cast<bool>(_instance.load());
196 static T *_CreateInstance(std::atomic<T *> &instance);
198 static std::atomic<T *> _instance;
201PXR_NAMESPACE_CLOSE_SCOPE
Manage a single instance of an object (see.
static void DeleteInstance()
Destroy the sole instance object of type T, if it exists.
static void SetInstanceConstructed(T &instance)
Indicate that the sole instance object has already been created.
static bool CurrentlyExists()
Return whether or not the single object of type T is currently in existence.
static T & GetInstance()
Return a reference to an object of type T, creating it if necessary.
Pragmas for controlling compiler-specific behaviors.