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, i.e. 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:
_LIT16
_LIT8
_LIT
The _L16
, _L8
and _L
macros which were used to generate literal text prior to EPOC release 5 are retained for compatibility purposes, but all new code which 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.