-
Notifications
You must be signed in to change notification settings - Fork 2
ElemSig
A xlang::meta::reader::ElemSig
structure represents a single fixed argument in a custom attribute. See CustomAttributeSig for an example.
using value_type = std::variant<
bool, // index 0
char16_t, // index 1
uint8_t, // index 2
int8_t, // index 3
uint16_t, // index 4
int16_t, // index 5
uint32_t, // index 6
int32_t, // index 7
uint64_t, // index 8
int64_t, // index 9
float, // index 10
double, // index 11
std::string_view, // index 12
SystemType, // index 13
EnumValue>; // index 4
The type of the fixed argument. Types 0 through 11 are self-explanatory.
The std::string_view
represents a string literal.
The EnumValue
represents a constant value of an enumerated type.
The SystemType
represents an instance of some other type.
struct SystemType
{
std::string_view name;
};
This represents the name of the type.
struct EnumValue
{
EnumDefinition type;
value_type value;
};
The type
represents the enumeration type that provides the value for this parameter, and value
is its value.
using value_type = std::variant<
bool, // index 0 (disallowed in metadata files)
char16_t, // index 1 (disallowed in metadata files)
uint8_t, // index 2 (disallowed in metadata files)
int8_t, // index 3 (disallowed in metadata files)
uint16_t, // index 4 (disallowed in metadata files)
int16_t, // index 5 (disallowed in metadata files)
uint32_t, // index 6
int32_t, // index 7
uint64_t, // index 8 (disallowed in metadata files)
int64_t>; // index 9 (disallowed in metadata files)
The value_type
is a variant of the various underlying types of enumerations. Although ECMA-335 permits a wide variety of underlying types, the Xlang type system requires enumerations to have an underlying type of either int32_t
or uint32_t
bool equals_enumerator(std::string_view const& name) const;
Determines whether the value of the argument is equal to named field of the underlying enumerator.
The named field must exist in the underlying enumerator. if not, the behavior is undefined.