相关疑难解决方法(0)

何时以及如何使用模板文字运算符?

cppreference上有一个提到,可以有模板化的用户 - 文字运算符,但有一些限制:

如果文字运算符是模板,则它必须具有空参数列表,并且只能有一个模板参数,该参数必须是具有元素类型的非类型模板参数包char,例如

template <char...> double operator "" _x();
Run Code Online (Sandbox Code Playgroud)

所以我在下面的代码中写了一个:

template <char...> 
double operator "" _x()
{
    return .42;
}

int main()
{
    10_x; // empty template list, how to specify non-empty template parameters?
}
Run Code Online (Sandbox Code Playgroud)

题:

  1. 代码有效,但是如何将运算符与一些非空模板参数一起使用?10_x<'a'>;或者10_<'a'>x;不编译.
  2. 您是否有任何关于此类模板化运算符的实际使用示例?

c++ templates user-defined-literals c++11 c++14

10
推荐指数
2
解决办法
3091
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

templates ×1

user-defined-literals ×1