有没有人有关于使用运营商“”的信息?

时间:2012-02-02 20:17:00

标签: c++ c++11 user-defined-literals

Bjarne Stroustrup今天为2012年Going Native会议做了主题演讲。在他的演讲中,他讨论了执行正确单位的问题。他对此的优雅(恕我直言)解决方案涉及使用我以前从未听说过的运算符:operator""。使用此运算符,他能够编写如下所示的C ++代码:

ratio = 100m / 1s;

定义了operator""m(...)operator""s(...)

有没有人知道有关如何实际使用此运算符的任何文档(或者即使任何现代C ++编译器支持它)?我尝试在线搜索,但没有运气。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:9)

您要寻找的语法是“用户定义的文字”,这是C ++ 11的一个特性。

g ++ 4.7及更好地支持此功能。

以下是一些描述该运算符重载使用的文档: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf

另请参阅Xeo在评论中提供的优秀链接。

答案 1 :(得分:3)

目前最好的文档可能在标准本身。您可以从the commitee's site获取最新版本。根据{{​​3}},它将在下一版的gcc(gcc-4.7)中。您应该能够在从SVN存储库构建gcc时对其进行测试。