HDK
|
#include "pxr/pxr.h"
#include "pxr/base/arch/defines.h"
#include "pxr/base/arch/demangle.h"
#include "pxr/base/tf/hash.h"
#include "pxr/base/tf/preprocessorUtilsLite.h"
#include "pxr/base/tf/safeTypeCompare.h"
#include "pxr/base/tf/api.h"
#include <iosfwd>
#include <string>
#include <typeinfo>
#include <type_traits>
#include <vector>
Go to the source code of this file.
Classes | |
class | TfEnum |
Macros | |
#define | TF_ADD_ENUM_NAME(VAL,...) |
Functions | |
template<class HashState , class Enum > | |
std::enable_if_t< std::is_same < Enum, TfEnum >::value > | TfHashAppend (HashState &h, Enum const &e) |
TF_API std::ostream & | operator<< (std::ostream &out, const TfEnum &e) |
#define TF_ADD_ENUM_NAME | ( | VAL, | |
... | |||
) |
Macro used to associate a name with an enumerated value.
TF_ADD_ENUM_NAME()
registers a name for an enumerated value so that the association can be accessed in calls to TfEnum::GetValueFromName()
, TfEnum::GetValueFromFullName()
, TfEnum::GetName()
, and TfEnum::GetFullName()
. It's first argument, VAL
, is the symbolic name of the enumerated value or a TfEnum
instance constructed from it. The name defined for the value is created by putting double quotes around the VAL
argument.
An optional second argument, DISPLAY
, is a name to be used for display purposes (i.e. in a user interface). The display name can contain characters like spaces and punctuation, and does not need to be a unique string. If this argument is not specified, the display name will be derived from VAL
.
Only the names for which TF_ADD_ENUM_NAME()
is called will be accessible with the name/value methods; you can hide values from this mechanism by not adding them.
Please note that the best way to call TF_ADD_ENUM_NAME()
is using the TfRegistryManager
macro TF_REGISTRY_FUNCTION()
.
std::enable_if_t<std::is_same<Enum, TfEnum>::value> TfHashAppend | ( | HashState & | h, |
Enum const & | e | ||
) |