Сообщение Re: Тема constexpr в классах от 05.04.2026 8:28
Изменено 05.04.2026 8:50 rg45
Re: Тема constexpr в классах
Здравствуйте, LaptevVV, Вы писали:
LVV>Я, конечно, видал разные примеры.
LVV>Но вот какой самый примитивный и простой пример можно придумать?
LVV>Чтоб без этого вот динамического выделения памяти во время компиляции ?
LVV>С конкретными классами (как Страуструп их обзывает) чего-то в голову ничего не приходит...
Любой класс стандатной библиотеки, содержащий статический constexpr член value: is_const, is_pointer, is_object, is_function, is_reference, integral_constant и множество других.
Конструкторы и функции члены многих классов стандартной библиотеки объявлены constexpr, что позволяет использовать объекты этих классов во время компиляции, например:
Или я не уловил суть вопроса.
LVV>Я, конечно, видал разные примеры.
LVV>Но вот какой самый примитивный и простой пример можно придумать?
LVV>Чтоб без этого вот динамического выделения памяти во время компиляции ?
LVV>С конкретными классами (как Страуструп их обзывает) чего-то в голову ничего не приходит...
Любой класс стандатной библиотеки, содержащий статический constexpr член value: is_const, is_pointer, is_object, is_function, is_reference, integral_constant и множество других.
Конструкторы и функции члены многих классов стандартной библиотеки объявлены constexpr, что позволяет использовать объекты этих классов во время компиляции, например:
static_assert(std::string("12345").size() == 5);Или я не уловил суть вопроса.
Re: Тема constexpr в классах
Здравствуйте, LaptevVV, Вы писали:
LVV>Я, конечно, видал разные примеры.
LVV>Но вот какой самый примитивный и простой пример можно придумать?
LVV>Чтоб без этого вот динамического выделения памяти во время компиляции ?
LVV>С конкретными классами (как Страуструп их обзывает) чего-то в голову ничего не приходит...
1) Любой класс стандатной библиотеки, содержащий статический constexpr член value: is_const, is_pointer, is_object, is_function, is_reference, integral_constant и множество других.
Кстати std::integral_constant допускает использование не только с интегральными типами, но и с любыми типами, объекты которых могут быть использованы как нешаблонные параметры шаблонов, например:
2) Конструкторы и функции члены многих классов стандартной библиотеки объявлены constexpr, что позволяет использовать объекты этих классов во время компиляции, например:
Или я не уловил суть вопроса.
LVV>Я, конечно, видал разные примеры.
LVV>Но вот какой самый примитивный и простой пример можно придумать?
LVV>Чтоб без этого вот динамического выделения памяти во время компиляции ?
LVV>С конкретными классами (как Страуструп их обзывает) чего-то в голову ничего не приходит...
1) Любой класс стандатной библиотеки, содержащий статический constexpr член value: is_const, is_pointer, is_object, is_function, is_reference, integral_constant и множество других.
Кстати std::integral_constant допускает использование не только с интегральными типами, но и с любыми типами, объекты которых могут быть использованы как нешаблонные параметры шаблонов, например:
using pi = std::integral_constant<double, 3.14>;
using master_version = std::integral_constant<std::array<int, 4>, std::array<int, 4>{3,0}>;2) Конструкторы и функции члены многих классов стандартной библиотеки объявлены constexpr, что позволяет использовать объекты этих классов во время компиляции, например:
static_assert(std::string("12345").size() == 5);Или я не уловил суть вопроса.