Spec-Zone.ru › C++

Язык C++

Это справочник по основным конструкциям языка C++.

Основные понятия

Комментарии
Таблица ASCII
Знаки препинания
Имена и идентификаторы
Типы – Основные типы
Объект – Область видимости – Срок жизни
Определения и ODR
Поиск имен
квалифицированный – неквалифицированный (ADL)
Правило «как будто»
Неопределенное поведение (UB)
Модель памяти и гонки данных
Наборы символов и кодировки
Фазы трансляции
Функция main
Модули (C++20)

Ключевые слова

Предпроцессор

#if - #ifdef - #ifndef - #elif
#elifdef - #elifndef (C++23)
#define - # - ##
#include - #pragma
#line - #error
#warning (C++23)

Выражения

Категории значений
Порядок вычисления
Постоянные выражения
Операторы
присваивания – арифметические
инкремента и декремента
логические – сравнения
доступа к членам
вызова, запятой, тернарный
sizeof – alignof (C++11)
new – delete – typeid
альтернативное представление
По умолчанию сравнения (C++20)
Порядок приоритета операторов
Преобразования
неявное – явное
пользовательское
Обычные арифметические преобразования
static_cast – dynamic_cast
const_cast
reinterpret_cast
Литералы (Экранированные последовательности)
булевы – целочисленные – с плавающей точкой
символьные – строковые
nullptr (C++11)
пользовательские (UDL) (C++11)

Объявления

Конфликтующие объявления
Срок хранения и связь
Локальные для трансляционной единицы (C++20)
Связь языков
Объявление пространства имен
Псевдоним пространства имен
Ссылки – Указатели – Массивы
Структурированные привязки (C++17)
Перечисления и перечислители
inline спецификатор
Встроенная ассемблерная инструкция
const/volatile
constexpr (C++11)
consteval (C++20)
constinit (C++20)
decltype (C++11)
auto (C++11)
typedef – Псевдоним типа (C++11)
Развернутые спецификаторы типов
Атрибуты (C++11)
alignas (C++11)
static_assert (C++11)

Инициализация

Инициализация по умолчанию
Инициализация значением
Инициализация копированием
Прямая инициализация
Инициализация агрегатов
Инициализация списком (C++11)
Инициализация ссылок
Статическая инициализация нелокальных переменных
Нулевая – постоянная
Динамическая инициализация нелокальных переменных
упорядоченная – неупорядоченная
Исключение копирования (RVO)

Функции

Объявление функции
Аргументы по умолчанию
Переменные аргументы
Лямбда-выражение (C++11)
Разрешение перегрузки
Перегрузка операторов
Адрес набора перегрузок
Корутины (C++20)

Операторы

if – switch
for – диапазон-for (C++11)
while – do-while
continue – break
goto – return
synchronized/atomic (TM TS)

Классы

Типы классов – Типы объединений
injected-class-name
Члены данных – Битовые поля
Члены-функции – Указатель this
Статические члены – Вложенные классы
Производный класс – using-объявление
Оптимизация пустого базового класса (EBO)
Виртуальная функция – Абстрактный класс (ABC)
override (C++11) – final (C++11)
Доступ к членам – friend
Конструкторы и списки инициализации членов
Конструктор по умолчанию – Деструктор
Конструктор копирования – Оператор присваивания копирования
Конструктор перемещения (C++11)
Оператор присваивания перемещения (C++11)
Конструктор преобразования
explicit спецификатор

Шаблоны

Параметры и аргументы шаблонов
Шаблон класса – Шаблон функции
Шаблон переменной (C++14)
Шаблон члена класса
Вывод аргументов шаблона
функция – класс (C++17)
Явное специализирование – Частичное специализирование
Упаковки параметров (C++11)
sizeof... (C++11)
Выражения свертки (C++17)
Индексирование упаковок (C++26)
Зависимые имена – SFINAE
Ограничения и концепции (C++20)
Выражение requires (C++20)

Исключения

throw-выражение
try-catch блок
Функциональный try-блок
Спецификация исключений
noexcept спецификация (C++11)
Динамическая спецификация (до C++17*)
noexcept оператор (C++11)

Разное

История C++
Расширение пространства имен std
Аббревиатуры: CPO, IFNDR, NDR, NTBS,
NTTP, RAO, SOCCC, TMP, TU

Приемы программирования

Шаблон с любопытно повторяющейся структурой (CRTP)
Указатель на реализацию (PIMPL)
Приобретение ресурса – инициализация (RAII)
Правило трех/пяти/нуля
Принцип нулевой накладных расходов

См. также

Документация по C для Конструкций языка C

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/language

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API