Вопросы по теме 'if-constexpr'

Почему эта неопределенная внешняя переменная не приводит к ошибке компоновщика в С++ 17?
Я скомпилировал и запустил следующую программу в компиляторе C++17 (Coliru). В программе я объявил переменную extern , но не определил ее. Однако компилятор не выдает ошибку компоновщика . #include <iostream> extern int i; // Only...
4082 просмотров
schedule 03.07.2022

Структурированные привязки для вашего собственного типа, который не является структурой или кортежем (через общедоступную функцию-член)
Я прохожу через Herb Sutter's Путешествие: к более мощному и простому программированию на C++ Связывание структуры Чтобы понять концепцию. Лучше всего написать программу, которую я пробовал, но получаю какую-то ошибку. Просто хочу...
4209 просмотров

Почему оператор if constexpr не устраняет эту ошибку основного константного выражения?
Что касается этого вопроса . Выражение основной константы, которое используется для инициализации constexpr переменной y , имеет неправильный формат. Так много дано. Но если я попытаюсь превратить if в if constexpr : template...
1761 просмотров

Как правильно проверить член во время компиляции с помощью boost :: hana?
Я пишу программу моделирования физики, и я хочу сделать следующее: у меня есть адаптированная структура hana, и я хочу проверить, есть ли в этой структуре член с именем "AbsorbsEnergy" во время компиляции, используя: if constexpr ( ... ) Как...
292 просмотров
schedule 24.01.2023

Увеличьте время жизни/область действия объекта из ветки `if constexpr`
Скажем, у нас есть следующий код struct MyClass { MyClass() = delete; // or MyClass() { } MyClass(int) { } void func() { } }; int main() { if constexpr (std::is_default_constructible_v<MyClass>) { MyClass myObj;...
158 просмотров
schedule 03.06.2023

3 разных/одинаковых способа выполнения времени компиляции N-factorial в C++
Я пытаюсь поиграть с метапрограммированием шаблонов, constexpr и if constexpr, и придумал 3 разных способа выполнения N-рекурсивной/N-факторной операции. Все три примера я нашел здесь на SO или в результате поиска в сети, а затем изменил их, чтобы...
317 просмотров

Расширение языка c++17 и флаг std:c++17
Меня смущают разные ошибки в Visual Studio 2017 (версия 15.9.11): 'if constexpr' is a C++17 language extension а также language feature 'structured bindings' requires compiler flag '/std:c++17' Я знаю, что добавление флага /std:c++17...
304 просмотров

Почему ложная ветвь if constexpr компилируется?
Почему этот код выдает ошибку при компиляции? Мои знания (а также это ) if constexpr говорит, что блок else не должен компилироваться. if constexpr (true) { int a = 10; } else { int b = 10 } Ошибка: error: expected ‘,’ or...
215 просмотров
schedule 24.05.2023

Как сравнить string_view с помощью if-constexpt в контексте constexpr
Можно ли сравнить std :: string_view с использованием if constexpr в контексте constexpr? И почему is_hello_2 и is_hello_4 не компилируются, показывая ошибку: «s» не является постоянным выражением static constexpr bool is_hello_1(auto s) {...
365 просмотров
schedule 23.02.2022

Ошибка компиляции, если условие constexpr не выполняется
Я хочу сопоставить определенные типы данных с помощью шаблонной функции C++ , и если ни один из случаев constexpr не соответствует, я хочу вызвать ошибку компиляции: template<typename ValueType> void match_data_type() { if constexpr...
23 просмотров
schedule 18.04.2023

Как пропустить некомпилируемый код через constexpr-if в C++?
Представьте себе следующий код, который не компилируется: Попробуйте онлайн! #include <type_traits> #include <iostream> int main() { struct A { int i = 123; }; struct B { int j = 456; }; B x; if...
58 просмотров