6 Basic concepts [basic]

6.7 Storage duration [basic.stc]

6.7.1 Static storage duration [basic.stc.static]

Все переменные, которые не имеют динамической продолжительности хранения, не имеют продолжительности хранения потоков и не являются локальными, имеют static storage duration. Хранение этих объектов должно длиться на время программы ([basic.start.static], [basic.start.term]).

Если переменная со статической продолжительностью хранения имеет инициализацию или деструктор с побочными эффектами, она не должна удаляться, даже если кажется, что она не используется, за исключением того, что объект класса или его копия / перемещение могут быть удалены, как указано в [class.copy].

Ключевое слово static можно использовать для объявления локальной переменной со статической продолжительностью хранения. [ Note: [stmt.dcl] описывает инициализацию локальных static переменных; [basic.start.term] описывает уничтожение локальных static переменных. ] end note

Ключевое слово, static примененное к члену данных класса в определении класса, дает статическую продолжительность хранения члена данных.