Spec-Zone.ru › C++

Язык C++

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

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

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

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

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

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

Выражения

Категории значений
Порядок вычисления
Константные выражения
Операторы
присваивания – арифметические
инкремента и декремента
логические – сравнения
доступа к членам
вызова, запятая, тернарный
sizeof – alignof (C++11)
new – delete – typeid
рефлексия (C++26)
альтернативное представление
Сравнения по умолчанию (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
while – do-while
for – диапазонный for (C++11)
template for (C++26)
continue – break
goto – return
contract_assert (C++26)
synchronized/atomic (TM TS)

Классы

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

Шаблоны

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

Исключения

Блок try
Генерация исключений
Обработка исключений
Спецификация исключений
Спецификация noexcept (C++11)
Динамическая спецификация (до C++17*)
Оператор noexcept (C++11)

Разное

История C++
Расширение пространства имён std
Сокращения: AFO, 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/cpp/language

Spec-Zone.ru

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