• The first parameter is the data type of a single character.
• The optional second parameter is a traits class, which provides all core operations for the characters
of the string class. Such a traits class specifies how to copy or to compare characters (see
Section 16.1.4, page 853, for details). If it is not specified, the default traits class according to
the current character type is used. See Section 13.2.15, page 689, for a user-defined traits class
that lets strings behave in a case-insensitive manner.
• The third optional argument defines the memory model that is used by the string class. As
usual, the default value is the default memory model allocator (see Section 4.6, page 57, and
Chapter 19 for details).