如何在变量上调用运算符“”
How to call Operator "" on variable
所以我定义了这个运算符:
constexpr double operator"" _deg(double deg)
{
return deg * M_PI / 180.0L;
}
到目前为止一切顺利。关于常量,我现在可以写:
90.0_deg
但是如果我们已经定义了一个 double 并且想要转换它呢:
double foo = 3.14
如何调用 foo 上的运算符?
我试过了:
_deg(foo)
但是它说 foo 没有定义。
还有
operator""(foo)
显然不行。
有可能吗?
您可以像这样显式调用 user-defined-literal (UDL):
operator""_deg(foo);
这是一个demo。
请注意,double
不是 UDL 的有效参数类型。您可以将其改为 long double
。
所以我定义了这个运算符:
constexpr double operator"" _deg(double deg)
{
return deg * M_PI / 180.0L;
}
到目前为止一切顺利。关于常量,我现在可以写:
90.0_deg
但是如果我们已经定义了一个 double 并且想要转换它呢:
double foo = 3.14
如何调用 foo 上的运算符?
我试过了:
_deg(foo)
但是它说 foo 没有定义。
还有
operator""(foo)
显然不行。
有可能吗?
您可以像这样显式调用 user-defined-literal (UDL):
operator""_deg(foo);
这是一个demo。
请注意,double
不是 UDL 的有效参数类型。您可以将其改为 long double
。