在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;
不编译。 - 您是否有任何此类模板化运算符在实际使用中的示例?