-
Notifications
You must be signed in to change notification settings - Fork 2
enum TypeDefOrRef
The xmr::TypeDefOrRef enum is defined in meta_reader.h (via impl/enum.h). It describes an entity which could be a TypeDef, TypeRef, or TypeSpec. (Yes, TypeSpec is not mentioned in the name of the enum. That's because TypeSpec is not used in xlang databases, I don't think.)
The TypeDefOrRef is often a template parameter to other types.
A typed_index<TypeDefOrRef> represents a value which could be a TypeDef, a TypeRef, a TypeSpec, or nothing. A coded_index<TypeDefOrRef> is a typed_index<TypeDefOrRef> that can tell you what's inside. You will almost always be working with coded_index.
The Boolean conversion operator returns true if the typed_index contains anything at all. It returns false if the typed_index is empty. If the typed_index is empty, then no other method calls are valid.
xmr TypeDefOrRef type() const;The type method tells you what is inside the coded_index.
xmr::TypeDef TypeDef() const;
xmr::TypeDef TypeRef() const;
xmr::TypeDef TypeSpec() const;The TypeDef() method returns the TypeDef that the typed_index refers to. It is illegal to call this method if the type() of the typed_index is not TypeDef.
The TypeRef() and TypeSpec() methods behave analogously.
std::pair<xmr::CustomAttribute, xmr::CustomAttribute>
CustomAttribute() const;Returns a range (pair of iterators) that represents the custom attributes associated with the TypeDef, TypeRef or TypeSpec.
Complexity: O(log n), where n is the size of the CustomAttributes table.
Exceptions: Throws std::invalid_argument if the database is corrupted.