Constant literal text

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:

  • _LIT16

  • _LIT8

  • _LIT

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.

_LIT16

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.

_LIT8

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.

_LIT

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.