Михаил Матросов — Как объявить константу в С++?
Описание
Ближайшая конференция — С++ Russia 2020 Piter
11-14 ноября, Online
Подробности и билеты: https://cppconf-piter.ru/
. С++ прекрасен тем, что простейшие вещи в нём могут быть чрезвычайно запутанны и сложны. Казалось бы, что может быть проще, чем объявить константу?
Достаточно лишь выбрать подходящий нам linkage и storage duration, определиться с видимостью константы и тем, в каких единицах трансляции она будет представлена. Выбрать наиболее удобный способ определения: глобальная переменная, локальная переменная, статическое поле класса. Указать подходящую комбинацию спецификаторов static, inline и constexpr. Ещё может быть стоит сделать переменную шаблоном или ссылкой. А если речь идёт о строке, надо бы ещё не прогадать с типом: const char*, char[], std::string, std::string_view.
Если для вас все эти шаги очевидны — поздравляем! Это впечатляет. Если же вам, как и Михаилу, этот зоопарк немного взрывает мозг, то давайте вместе в этом разберёмся.
Доклад предполагает понимание концепций linkage и storage duration, объявления и определения, спецификаторов static, inline и constexpr и их комбинаций. Весь этот материал раскрыт в предыдущем докладе Михаила "Спецификаторы, квалификаторы и шаблоны" на C++ Russia Piter 2019.