Изучая новый стандарт C++, натолкнулся на нововведение «шаблоны переменных»
Синтаксис у шаблона следующий:
template < typename T >
constexpr T value = T(1234);
О применении шаблона написано:
Данная возможность позволяет создавать и использовать constexpr шаблоны переменных, для более удобного сочетания с шаблонными алгоритмами.
Не вполне понимаю, как такая переменная будет использоваться в шаблонном алгоритме. Не могли бы Вы привести несколько примеров использования этого механизма? Также не понимаю, почему нельзя такое шаблонное constexpr выражение заменить нешаблонным, ведь значение мы указываем явно, соответственно, и тип можем написать (вывести) явно.
Ответ
В стандарте есть пример
template
template
Здесь шаблон переменной позволяет получить константу нужного размера - float/double/etc.
Другое популярное применение - это замена is_some
template< class T, class U >
inline constexpr bool is_same_v = is_same
Комментариев нет:
Отправить комментарий