пишет:
C++ поддерживает две нотации неизменности:
- const - которая подразумевает, что значение не будет изменяться. В первую очередь это используется для спецификации интерфейсов, для данных которые передаются в функции и методы так, чтобы не опасаться, что они будут изменены. Компилятор отслеживает наличие спецификатора const;
- constexp - который подразумевает вычисление константы во время компиляции. Используется для размещения данных в памяти, где они не будут повреждены, а также для улучшения производительности.
Например:
const int dmv = 17; // константа с именем dmv int var = 17; // переменная var не является константой constexpr double max1 = 1.4∗square(dmv); // OK, так как square(17) является константым выражением constexpr double max2 = 1.4∗square(var); // Ошибка, так как var не является константой const double max3 = 1.4∗square(var); // OK, поскольку выражение может быть вычислено в рантайме double sum(const vector<double>&); // sum не будет модифицировать его аргументы vector<double> v {1.2, 3.4, 4.5}; // v не является константой const double s1 = sum(v); // OK, будет вычислено в рантайме constexpr double s2 = sum(v); // Ошибка, sum(v) не является константным выражением.
![]()
Это интересно
0
|
|||
Последние откомментированные темы: