¿Cuándo y cómo usar un operador literal de plantilla?
Encppreference hay una mención de que uno puede tenertemplado operadores literales de usuario, con algunas restricciones:
Si el operador literal es una plantilla, debe tener una lista de parámetros vacía y solo puede tener un parámetro de plantilla, que debe ser un paquete de parámetros de plantilla sin tipo con tipo de elementochar
, como
template <char...> double operator "" _x();
Entonces escribí uno como en el código a continuación:
template <char...>
double operator "" _x()
{
return .42;
}
int main()
{
10_x; // empty template list, how to specify non-empty template parameters?
}
Pregunta:
El código funciona, pero ¿cómo puedo usar el operador con algunos parámetros de plantilla no vacíos?10_x<'a'>;
o10_<'a'>x;
no compila¿Tiene algún ejemplo del uso en el mundo real de estos operadores con plantilla?