Вопросы по теме 'compile-time-constant'

Обнаружение константы времени компиляции C ++
Бывают случаи, когда доступен источник библиотеки и он должен поддерживать параметры переменных в целом, но на практике эти параметры обычно являются константами. Тогда можно будет оптимизировать вещи с помощью специальной обработки постоянных...
4879 просмотров

constexpr перегрузка
Связано: Функция, возвращающая constexpr, не компилируется Мне кажется, что constexpr ограничена в полезности в C ++ 11 из-за невозможности определить две функции, которые в противном случае имели бы одинаковую сигнатуру, но одна из которых была...
11525 просмотров

Почему std::string::max_size не является константой времени компиляции?
std::string предоставляет метод max_size() для определения максимального количества элементов, которые он может содержать. Однако, чтобы вычислить максимальную длину строки в целом, программист должен создать строковый объект (возможно,...
2774 просмотров
schedule 18.05.2022

Размер времени компиляции строкового литерала в массиве строковых литералов
Я хочу найти длину литерала C-строки во время компиляции. Учитывая определения: static const char * const header_left[] = { " | | Raw | Raw |", " | | Start | End |", "Interval#| Duration |...
2551 просмотров

Есть ли в clang предупреждение «Интегральное постоянное переполнение»?
Рассмотрим следующие фрагменты: short x = 2000000000; short x = (short)2000000000; int x = 1000000000 * 1000000000; Можем ли мы получить предупреждение (/ошибку) для них в Clang? Как? Начиная с какой версии? Спасибо, Киприан.
694 просмотров

Могу ли я получить имя класса как константу времени компиляции без жесткого кодирования его в строковом литерале?
Я работаю над процессором аннотаций. Этот код компилируется: package sand; import java.util.Set; import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.RoundEnvironment; import...
2067 просмотров

Почему переменная final не всегда является константным выражением?
В приведенном ниже коде: final int a; a=2; byte b=a; // error: possible loss of precision Почему я получаю эту ошибку? Разве a final переменная не является постоянным выражением времени компиляции и, следовательно, неявно сужается до...
1828 просмотров

constexpr c конкатенация строк, параметры, используемые в контексте constexpr
Я изучал, как далеко я могу взять конкатенацию constexpr char const * из этого ответа: constexpr для объединения двух или более строк символов У меня есть следующий код пользователя, который точно показывает, что я пытаюсь сделать. Кажется, что...
5157 просмотров
schedule 10.09.2023

Оценить все макросы в заголовочном файле C++
У меня есть требование построить автоматизированную систему для анализа файла C++ .h с большим количеством операторов #define и сделать что-то со значением, которое работает каждый #define . В файле .h помимо операторов #define есть много...
2742 просмотров

const массив const, чтобы использовать его элементы в определениях длины массива или задать значение параметров шаблона
Мне нужен постоянный массив констант, в котором его константы (элементы постоянного массива констант) могут использоваться там, где можно использовать только константу времени компиляции, например определения длины массива. E.g: int a[...
305 просмотров

Пользовательская литеральная строка: проверка длины во время компиляции
У меня есть пользовательский литеральный оператор, который имеет смысл только для строк определенной длины, например: constexpr uint16_t operator "" _int(const char* s, std::size_t len) { return len == 2 ? s[0] | (s[1] << 8) : throw; }...
941 просмотров