你怎么称呼这个接线员?
除了创建自定义文字之外,您可以将它用于其他用途吗?
用法示例: (见 cppreference)
constexpr long double operator"" _deg ( long double deg )
{
return deg * 3.14159265358979323846264L / 180;
}
最佳答案
这个的主要用法operator""
是创建用户定义的文字。来自 reference :
Allows integer, floating-point, character, and string literals to produce objects of user-defined type by defining a user-defined suffix.
您可以像调用任何其他重载运算符一样调用此运算符:
std::cout << 42.5_deg; // with convenient operator syntax
std::cout << operator"" _deg(42.5); // with an explicit call
并非完全不相关:正如对您的问题的评论所指出的那样,这个例子的名字很糟糕。它接受度数并返回弧度,所以它应该被命名为 operator"" _rads
. UDL 的目的是提供方便、易于阅读的语法,以及一个关于它所做的事情的函数,它积极地破坏了这一点。您可以使用此运算符进行几乎任何您想要的计算(对类型和传入参数的数量进行限制,类似于其他运算符),例如:
constexpr long double operator"" _plus_one ( long double n )
{
return n + 1;
}
尽管此运算符的用法仍与上述相同。这是一个 demo .
关于c++ - 运算符""在 C++ 中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63375208/