On cppreference there is a mentioning that one can have templated user-literal operators, with some restrictions:
If the literal operator is a template, it must have an empty parameter list and can have only one template parameter, which must be a non-type template parameter pack with element type
char, such as
template <char...> double operator "" _x();
So I wrote one like in the code below:
template <char...> 
double operator "" _x()
{
    return .42;
}
int main()
{
    10_x; // empty template list, how to specify non-empty template parameters?
}
Question:
- The code works, but how can I use the operator with some non-empty template parameters? 
10_x<'a'>;or10_<'a'>x;does not compile. - Do you have any example of real-world usage of such templated operators?
 
Aucun commentaire:
Enregistrer un commentaire