Constant literals are objects containing constant literal text which can be placed by the compiler into read-only memory.
They are also referred to as literal descriptors. They are not true
descriptors, they are not derived from the descriptor classes, but
they do have conversion operators so that they can be passed to any function
which takes a const TDesC16&
type, a const TDesC8&
type
or a const TDesC&
type.
Constant literal descriptors are constructed using the macros:
The _L16
, _L8
and _L
macros,
which perform a similar function, are retained for compatibility purposes,
but all production code that requires literal text should use literal descriptors.
This macro constructs the 16 bit variant
constant literal descriptor for Unicode strings. The literal descriptor object
is an instance of a TLitC16
class and the macro generates const
static TLitC16
in the C++ code.
This macro constructs the 8 bit variant constant
literal descriptor for non-Unicode strings. The literal descriptor object
is an instance of a TLitC8
class and the macro generates const
static TLitC8
in the C++ code.
This macro constructs the build independent
type constant literal descriptor. The literal descriptor object is an instance
of a TLitC
class and the macro generates const static
TLitC
in the C++ code. By using this type, the appropriate
variant, either 16 bit or 8 bit is selected at build time depending on whether
the _UNICODE
macro has been defined or not.