cpprussia C++ Russia 2020 Мск (29.06.2020 — 02.07.2020)

Как объявить константу в С++?

img

В докладе мы рассмотрим, как выбирать спецификаторы static, inline и constexpr при объявлении константы. Отдельно разберём строковые константы и сравним разные способы их объявления. В итоге мы сформулируем универсальные рекомендации на все случаи жизни.

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