Вопросы по теме 'compile-time-constant'
Обнаружение константы времени компиляции C ++
Бывают случаи, когда доступен источник библиотеки и он должен поддерживать параметры переменных в целом, но на практике эти параметры обычно являются константами.
Тогда можно будет оптимизировать вещи с помощью специальной обработки постоянных...
4879 просмотров
schedule
20.03.2023
constexpr перегрузка
Связано: Функция, возвращающая constexpr, не компилируется
Мне кажется, что constexpr ограничена в полезности в C ++ 11 из-за невозможности определить две функции, которые в противном случае имели бы одинаковую сигнатуру, но одна из которых была...
11525 просмотров
schedule
09.04.2022
Почему 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 просмотров
schedule
17.04.2022
Есть ли в clang предупреждение «Интегральное постоянное переполнение»?
Рассмотрим следующие фрагменты:
short x = 2000000000;
short x = (short)2000000000;
int x = 1000000000 * 1000000000;
Можем ли мы получить предупреждение (/ошибку) для них в Clang? Как? Начиная с какой версии?
Спасибо, Киприан.
694 просмотров
schedule
13.03.2023
Могу ли я получить имя класса как константу времени компиляции без жесткого кодирования его в строковом литерале?
Я работаю над процессором аннотаций. Этот код компилируется:
package sand;
import java.util.Set;
import javax.annotation.processing.AbstractProcessor;
import javax.annotation.processing.RoundEnvironment;
import...
2067 просмотров
schedule
28.11.2022
Почему переменная final не всегда является константным выражением?
В приведенном ниже коде:
final int a;
a=2;
byte b=a; // error: possible loss of precision
Почему я получаю эту ошибку? Разве a final переменная не является постоянным выражением времени компиляции и, следовательно, неявно сужается до...
1828 просмотров
schedule
16.08.2022
constexpr c конкатенация строк, параметры, используемые в контексте constexpr
Я изучал, как далеко я могу взять конкатенацию constexpr char const * из этого ответа: constexpr для объединения двух или более строк символов
У меня есть следующий код пользователя, который точно показывает, что я пытаюсь сделать. Кажется, что...
5157 просмотров
schedule
10.09.2023
Оценить все макросы в заголовочном файле C++
У меня есть требование построить автоматизированную систему для анализа файла C++ .h с большим количеством операторов #define и сделать что-то со значением, которое работает каждый #define . В файле .h помимо операторов #define есть много...
2742 просмотров
schedule
02.08.2022
const массив const, чтобы использовать его элементы в определениях длины массива или задать значение параметров шаблона
Мне нужен постоянный массив констант, в котором его константы (элементы постоянного массива констант) могут использоваться там, где можно использовать только константу времени компиляции, например определения длины массива.
E.g:
int a[...
305 просмотров
schedule
05.06.2023
Пользовательская литеральная строка: проверка длины во время компиляции
У меня есть пользовательский литеральный оператор, который имеет смысл только для строк определенной длины, например:
constexpr uint16_t operator "" _int(const char* s, std::size_t len)
{
return len == 2 ? s[0] | (s[1] << 8) : throw;
}...
941 просмотров
schedule
25.12.2022