7#ifndef PXR_BASE_TF_SINGLETON_H
8#define PXR_BASE_TF_SINGLETON_H
95PXR_NAMESPACE_OPEN_SCOPE
125 ARCH_PRAGMA_UNDEFINED_VAR_TEMPLATE
126 T *p = _instance.load();
128 p = _CreateInstance(_instance);
143 ARCH_PRAGMA_UNDEFINED_VAR_TEMPLATE
144 return static_cast<bool>(_instance.load());
179 static T *_CreateInstance(std::atomic<T *> &instance);
181 static std::atomic<T *> _instance;
184PXR_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.