Rule A2-3-1 (required, architecture / design / implementation, automated)

Only those characters specified in the C++ Language Standard basic source character set shall be used in the source code.

Rationale

The basic source character set consists of 96 characters: the space character, the control characters representing horizontal tab, vertical tab, form feed, and new-line,

plus the following 91 graphical characters:

a b c d e f g h i j k l m n o p q r s t u v w x y z
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_{}[]#(
) < > % : ; . ? * + - / ^ & | ~ ! =, \ " ’

[C++ Language Standard [3]]

Exception

It is permitted to use other characters inside the text of a wide string and a UTF-8 encoded string literal. It is also permitted to use a character @ inside comments. See rule A2-7-3.

Example

// $Id: A2-3-1.cpp 307578 2018-02-14 14:46:20Z michal.szczepankiewicz $
#include <cstdint>

void Fn() noexcept
{
    std::int32_t sum = 0; // Compliant
                          // std::int32_t £_value = 10; // Non-compliant
                          // sum += £_value; // Non-compliant
                          // Variable sum stores £ pounds // Non-compliant
}

See also

JSF December 2005 [8]: AV Rule 9: Only those characters specified in the C++ basic source character set will be used.