运算符“”在 C++ 中做什么?
What does the operator"" do in C++?
你怎么称呼这个接线员?
除了创建自定义文字之外,你能用它做其他事情吗?
用法示例:(参见cppreference)
constexpr long double operator"" _deg ( long double deg )
{
return deg * 3.14159265358979323846264L / 180;
}
此 operator""
的主要用途是创建 user-defined-literals。来自 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
并非完全无关:正如对您的问题的评论中所指出的,这个例子的命名很糟糕。它采用度数和 returns 弧度,因此它可能应该命名为 operator"" _rads
。 UDL 的目的是提供方便、易于阅读的语法,而一个谎言其功能的功能会积极破坏这一点。
您可以使用此运算符进行几乎任何您想要的计算(对传入参数的类型和数量有限制,类似于其他运算符),例如:
constexpr long double operator"" _plus_one ( long double n )
{
return n + 1;
}
虽然这个运算符的用法仍然和上面一样
这是一个demo。
你怎么称呼这个接线员?
除了创建自定义文字之外,你能用它做其他事情吗?
用法示例:(参见cppreference)
constexpr long double operator"" _deg ( long double deg )
{
return deg * 3.14159265358979323846264L / 180;
}
此 operator""
的主要用途是创建 user-defined-literals。来自 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
并非完全无关:正如对您的问题的评论中所指出的,这个例子的命名很糟糕。它采用度数和 returns 弧度,因此它可能应该命名为 operator"" _rads
。 UDL 的目的是提供方便、易于阅读的语法,而一个谎言其功能的功能会积极破坏这一点。
您可以使用此运算符进行几乎任何您想要的计算(对传入参数的类型和数量有限制,类似于其他运算符),例如:
constexpr long double operator"" _plus_one ( long double n )
{
return n + 1;
}
虽然这个运算符的用法仍然和上面一样
这是一个demo。