Когда и как использовать шаблон буквального оператора?
Наcppreference есть упоминание, что можно иметьшаблонный пользовательские операторы с некоторыми ограничениями:
Если литеральный оператор является шаблоном, он должен иметь пустой список параметров и может иметь только один параметр шаблона, который должен быть нетипизированным пакетом параметров шаблона с типом элемента.char
, такие как
template <char...> double operator "" _x();
Итак, я написал один, как в коде ниже:
template <char...>
double operator "" _x()
{
return .42;
}
int main()
{
10_x; // empty template list, how to specify non-empty template parameters?
}
Вопрос:
Код работает, но как я могу использовать оператор с некоторыми непустыми параметрами шаблона?10_x<'a'>;
или же10_<'a'>x;
не компилируется.Есть ли у вас пример реального использования таких шаблонных операторов?