Параметр-авто в шаблоне C++20
В C++20 вместо конкретного типа параметра можно указать параметр auto в списке шаблона, и компилятор выведет тип значения из аргумента шаблона.
Такой прием работает для целых, перечислений
и других констант, подходящих под правила
нетиповых параметров.
Запишем Tag с полем mark
и выведем метку для целой константы:
#include <iostream>
template<auto N>
struct Tag {
static constexpr auto mark = N;
};
int main() {
std::cout << Tag<42>::mark << "\n";
return 0;
}
Создайте Tag<7> и выведите
mark.