5
ответов

Используя numeric_limits:: макс. () в константных выражениях

Я хотел бы определить в классе константу, какое значение является максимальным возможным интервалом Что-то вроде этого: класс A {... статический интервал константы ERROR_VALUE = станд.:: numeric_limits <интервал>:: макс. (...
вопрос задан: 23 December 2016 14:56
5
ответов

Можно ли проверить, что-то является constexpr? [Дубликат]

В C ++ 11 и более поздних версиях, возможно ли во время компиляции для любого заданного идентификатора выводить (без ошибок компиляции) значение constexpr bool, которое истинно тогда и только тогда, когда данный данный идентификатор относится к ...
вопрос задан: 9 November 2012 01:11
4
ответа

Любой способ переместить функцию constexpr, которая возвращает std :: optional внутри структуры, где она используется? [Дубликат]

Я понимаю, что заголовок вопроса запутан, поэтому вот пример: # include & lt; array & gt; # Включают & л; опционально & GT; # Включают & л; type_traits & GT; static constexpr std :: optional & lt; int & gt; ...
вопрос задан: 11 May 2013 05:15
3
ответа

Невозможно использовать функцию `constexpr` члена как константу времени компиляции [duplicate]

У меня есть следующий код: #include & lt; memory & gt; static constexpr size_t size () {return 8; } struct Test {static constexpr size_t alignment () {return 4; } std :: ...
вопрос задан: 11 May 2013 05:15
2
ответа

Предупреждение: ISO C ++ запрещает преобразовывать строковую константу в «char *» для статического члена данных «constexpr char *» [дубликат]

Почему этот код возвращает предупреждение: ISO C ++ запрещает преобразовывать строковую константу в 'char *' [-Wwrite-strings], если спецификатор constexpr используется в объявлении объекта или не является статическим ...
вопрос задан: 18 January 2019 17:15
2
ответа

std :: is_constant_evaluated поведение

GCC9 уже реализует std :: is_constant_evaluated. Я немного поиграл с этим, и понял, что это несколько сложно. Вот мой тест: constexpr int Fn1 () {if constexpr (std :: ...)
вопрос задан: 18 January 2019 14:53
2
ответа

Почему initializer_list значений enum не считается константным выражением?

В следующем коде (проверено локально и на Wandbox): #include < iostream > типы enum {A, B, C, D}; void print (std :: initializer_list < Типы > типы) {для (автоматический тип: типы) ...
вопрос задан: 17 January 2019 22:54
2
ответа

Проблема компиляции c ++ constexpr

Я не могу скомпилировать этот тестовый пример для базового класса векторной графики. Пожалуйста, помогите мне выяснить, чего не хватает. Благодаря! Ошибка компиляции: переменная Constexpr 'i' должна быть инициализирована ...
вопрос задан: 13 July 2018 04:00
2
ответа

Эквивалентный троичный оператор для constexpr if?

Может быть, я что-то пропустил, но не могу найти никаких подсказок: есть ли в C ++ 17 троичный оператор constexpr, эквивалентный constexpr-if? шаблон < typename Mode > class BusAddress {public: явный ...
вопрос задан: 7 December 2016 08:08
2
ответа

Почему указатели на функции могут быть `constexpr`?

Как компилятор узнает, где в памяти будет квадратный корень до выполнения программы? Я думал, что адрес будет отличаться при каждом запуске программы, но это работает: ...
вопрос задан: 16 July 2016 15:53
2
ответа

C ++ constexpr не работает с reinterpret_cast [duplicate]

В более старых версиях gcc (~ 6.X) работал следующий код, однако с более новой версией есть ошибки компиляции. struct test {constexpr static int * PORT1 = reinterpret_cast & lt; int * & gt; (0x12345678); } ...
вопрос задан: 25 June 2014 02:11
1
ответ

Почему спецификаторы исключений для перегруженных операторов '< <' не работает ни с одним объектом std :: ostream, но работает с определенными в библиотеке?

instancelo.cpp: #include < type_traits > используя std :: is_same; #include < utility > используя std :: declval; #include < iostream > используя std :: ostream; используя std :: cout; struct Foo final {int ...
вопрос задан: 24 March 2019 01:26
1
ответ

Преобразование const char * в char * во время компиляции

В моем проекте мне нужно, чтобы пользователь ввел строку, и набираемая строка по умолчанию является const char * (с использованием кавычек). В моем проекте мне также нужно изменить эти строки, поэтому я не могу ...
вопрос задан: 3 March 2019 09:51
1
ответ

замените goto внутри макроса чем-то другим

Я пытаюсь удалить оператор goto внутри Mach7, потому что goto не разрешен в функции constexpr: #define MatchQ (s) {\ ...
вопрос задан: 27 February 2019 03:48
1
ответ

C ++ форсировать контекст non constexpr

У меня есть функции, которые объявлены с помощью спецификатора constexpr, и я уже проверял, что они оцениваются во время компиляции в модульных тестах. Теперь я хочу использовать дезинфицирующие средства с моим модульным тестом, чтобы ...
вопрос задан: 19 January 2019 12:31
1
ответ

Отсутствует инициализатор для члена статических данных constexpr

Насколько я прочитал, следующий код совместим с C ++ 17, и действительно Clang> 5.0 принимает его, но не GCC 8.2. #include < type_traits > // для is_literal_type_v struct Wrapper {constexpr ...
вопрос задан: 16 January 2019 21:48
1
ответ

Не вызывает ли std :: piecewise_construct нарушение ODR?

std :: piecewise_construct, определенный в , имеет внутреннюю связь, поскольку объявлен constexpr. Интересно, может ли использование std :: piecewise_construct в заголовке нарушать ODR. Например: a.hpp ...
вопрос задан: 7 July 2018 02:52
1
ответ

constexpr и инициализация статического константного void-указателя с переинтерпретацией приведений, какой компилятор прав?

Рассмотрим следующий фрагмент кода: struct foo {static constexpr const void * ptr = reinterpret_cast (0x1); }; auto main () -> int {return 0; } Приведенный выше пример компилируется ...
вопрос задан: 25 June 2014 01:11
1
ответ

inline vs. constexpr?

В новом стандарте C ++ 11, когда мне следует использовать ключевое слово inline вместо constexpr? Предлагает ли ключевое слово constexpr дополнительную оптимизацию по сравнению с встроенной или просто утверждает, что ...
вопрос задан: 14 April 2013 12:50
1
ответ

Следует ли использовать constexpr везде, где мы можем?

Очевидно, мы не можем сделать все constexpr. А если мы ничего не сделаем constexpr, то больших проблем не будет. Пока много кода написано без него. Но разве это хорошая идея ...
вопрос задан: 24 August 2011 02:23
0
ответов

Делает ли указание constexpr на конструктор автоматически превращает все созданные из него объекты в constexpr?

Вот мой код: class test {public: constexpr test () {} constexpr int оператор + (const test & rhs) {return 1; }}; int main () {test t; // ...
вопрос задан: 28 August 2019 07:35
0
ответов

C ++ 20 constexpr std :: копирование оптимизаций для времени выполнения

cppreference.com говорит: На практике реализации std :: copy избегают многократных назначений и используют функции массового копирования, такие как std :: memmove, если тип значения TriviallyCopyable. Однако ...
вопрос задан: 22 August 2019 12:48
0
ответов

Killing Magic Numbers: «const int» против «constexpr int» (или нет разницы в конце)

Допустим, у меня есть магическое число, от которого я хочу избавиться ... //whwhat.cpp for (int i = 0; i <42; i ++) {// ...} Разумно, я могу убить его двумя способами: Либо с const int ...
вопрос задан: 11 July 2019 19:02
0
ответов

в чем разница между статическими переменными constexpr и локальными переменными constexpr

Учитывая следующие 2 программы, в чем разница между использованием статических переменных constexpr и локальных переменных. Программа 1: class point {public: constexpr point () = default; constexpr ...
вопрос задан: 11 March 2019 14:58
0
ответов

Почему ** не ** объявить функцию как constexpr?

Можно объявить любую функцию, которая состоит только из оператора return constexpr и, таким образом, позволит выполнять оценку во время компиляции, если все аргументами являются constexpr, и только функции constexpr ...
вопрос задан: 18 July 2018 07:37
0
ответов

enable_if не работает в Visual Studio при использовании функции constexpr в качестве аргумента

В настоящее время я борюсь с Visual Studio 2017 (компиляция с использованием / std: c ++ последней, если это поможет). Рассматриваемый код просто выбирает специализацию структуры, основанную на результате некоторых шаблонов ...
вопрос задан: 10 September 2017 18:54
0
ответов

Как объявить строку constexpr C?

Я думаю, что я вполне понимаю, как использовать ключевое слово constexpr для простых типов переменных, но я запутался, когда дело доходит до указателей на значения. Я хотел бы объявить строковый литерал constexpr C, ...
вопрос задан: 8 September 2017 18:56
0
ответов

Завершено ли вычисление Тьюринга на основе constexpr?

Мы знаем, что метапрограммирование шаблона C ++ завершено по Тьюрингу, а метапрограммирование препроцессора - нет. C ++ 11 дает нам новую форму метапрограммирования: вычисление функций constexpr. Является ли эта форма ...
вопрос задан: 23 May 2017 12:07
0
ответов

Ошибка C ++ 0x с constexpr и возвращающей функцией шаблона

Я попытался найти решение проблемы вопрос Выведение типа параметра шаблона C ++, не являющегося типом, который не включает параметр шаблона для вызова f, но неявно выбирает правильный ...
вопрос задан: 23 May 2017 12:06
0
ответов

constexpr, static _assert и встраивание

Ранее я спрашивал о перегрузке функций на основе того, являются ли аргументы constexpr. Я пытаюсь обойти неутешительный ответ на этот вопрос, чтобы сделать более умную функцию утверждения. Это...
вопрос задан: 23 May 2017 11:47