The CustomMod (custom modifier) item in Signatures has a syntax diagram like this:
This diagram uses the following abbreviations:
-
CMOD_OPT
forELEMENT_TYPE_CMOD_OPT
(§II.23.1.16) -
CMOD_REQD
forELEMENT_TYPE_CMOD_REQD
(§II.23.1.16)
The CMOD_OPT
or CMOD_REQD
value is compressed, see §II.23.2.
The CMOD_OPT
or CMOD_REQD
is followed by a metadata token that indexes a row in the TypeDef table or the TypeRef table. However, these tokens are encoded and compressed – see §II.23.2.8 for details
If the CustomModifier is tagged CMOD_OPT
, then any importing compiler can freely ignore it entirely. Conversely, if the CustomModifier is tagged CMOD_REQD
, any importing compiler shall 'understand' the semantic implied by this CustomModifier in order to reference the surrounding Signature.