-
Notifications
You must be signed in to change notification settings - Fork 2
TypeRef
A xlang::meta::reader::TypeRef
structure introduces a level of indirection to a TypeDef
.
Since it is a row in a database table, TypeRef
derives from xlang::meta::reader::row_base<TypeRef>
, and all row operations are available, although in practice you won't use them directly, preferring to use the accessors defined here.
Some methods return a TypeRef
that may be empty, as reported by operator bool()
. All method calls are invalid on an empty TypeRef
. (Except for operator bool()
, of course.)
xlang::meta::reader::coded_index<ResolutionScope> ResolutionScope() const;
Returns a coded_index<ResolutionScope>
that identifies a row in the Module
, ModuleRef
, AssemblyRef
or TypeRef
table. This is column 0 in the database schema.
Complexity: O(1)
Exceptions: Throws std::invalid_argument
if the database is corrupted.
std::string_view TypeName() const;
Returns the name of the type being referred to. This is column 1 in the database schema.
The underlying data for the std::string_view
is the enclosing database. Therefore, the returned TypeName()
is valid for as long as the database remains alive.
Complexity: O(n) in the size of the returned string view.
Exceptions: Throws std::invalid_argument
if the database is corrupted.
std::string_view TypeNamespace() const;
Returns the namespace of the type being referred to. This is column 2 in the database schema.
The underlying data for the std::string_view
is the enclosing database. Therefore, the returned TypeNamespace()
is valid for as long as the database remains alive.
Complexity: O(n) in the size of the returned string view.
Exceptions: Throws std::invalid_argument
if the database is corrupted.
std::pair<xlang::meta::reader::CustomAttribute, xlang::meta::reader::CustomAttribute>
CustomAttribute() const;
Returns a range (pair of iterators) that represents the custom attributes associated with this type. If this range is empty, then the type has no custom attributes.
See also the get_attribute()
helper function.
Although TypeRef
s can in theory possess attributes, in practice they do not. The attributes reside on the corresponding TypeDef
.
Complexity: O(log n), where n is the size of the CustomAttributes
table.
Exceptions: Throws std::invalid_argument
if the database is corrupted.