Зачем использовать Static с переменной constexpr в файле .cpp? >struct MyClass
{
static bool IsMasked(qint8 Value);
};
< /code>
myclass.cpp
static constexpr qint8 Mask[8] = {
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
};
bool MyClass::IsMasked(qint8 Value)
{
for (int i = 0; i < 8; ++i)
{
if (Value & Mask)
{
return true;
}
}
return false;
}
В этом примере переменная Mask определена в файле. Полем Однако, если мы удалим Static и сохраним только contexpr , переменная все равно будет оставаться ограниченной сферой текущей единицы перевода из -за характера contexpr .
Почему статический часто используется вместе с ConstexPR в таких случаях, даже если это кажется избыточным? Существуют ли какие -либо практические преимущества (например, оптимизация, поведение компилятора или что -то еще), чтобы явно отметить переменную ContexPR как статическое в таких сценариях?
i ' M Попытка понять, существует ли значимая разница между: < /p>
static constexpr qint8 Mask[8] = { /*...*/ };
< /code>
и < /p>
constexpr qint8 Mask[8] = { ... };
Подробнее здесь: https://stackoverflow.com/questions/793 ... a-cpp-file
Зачем использовать Static с переменной contexpr в файле .cpp? [дублировать] ⇐ C++
Программы на C++. Форум разработчиков
1738007029
Anonymous
Зачем использовать Static с переменной constexpr в файле .cpp? >struct MyClass
{
static bool IsMasked(qint8 Value);
};
< /code>
myclass.cpp
static constexpr qint8 Mask[8] = {
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
};
bool MyClass::IsMasked(qint8 Value)
{
for (int i = 0; i < 8; ++i)
{
if (Value & Mask[i])
{
return true;
}
}
return false;
}
В этом примере переменная Mask определена в файле. Полем Однако, если мы удалим Static и сохраним только contexpr , переменная все равно будет оставаться ограниченной сферой текущей единицы перевода из -за характера contexpr .
Почему статический часто используется вместе с ConstexPR в таких случаях, даже если это кажется избыточным? Существуют ли какие -либо практические преимущества (например, оптимизация, поведение компилятора или что -то еще), чтобы явно отметить переменную ContexPR как статическое в таких сценариях?
i ' M Попытка понять, существует ли значимая разница между: < /p>
static constexpr qint8 Mask[8] = { /*...*/ };
< /code>
и < /p>
constexpr qint8 Mask[8] = { ... };
Подробнее здесь: [url]https://stackoverflow.com/questions/79391990/why-use-static-with-a-constexpr-variable-in-a-cpp-file[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия