如何解决运算符“”在C ++中做什么?
您如何称呼此操作员?
除了创建自定义文字外,您还可以将其用于其他用途吗?
用法示例:(请参见cppreference)
constexpr long double operator"" _deg ( long double deg )
{
return deg * 3.14159265358979323846264L / 180;
}
解决方法
此operator""
的主要用法是创建用户定义的文字。来自reference:
通过定义用户定义的后缀,允许整数,浮点数,字符和字符串文字产生用户定义类型的对象。
您可以像调用其他任何重载运算符一样调用此运算符:
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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。