用户定义的文字后缀在C++0x中应该是一个标识符,
_ (下划线)开头(17.6.4.3.5)_开头,后面以大写字母(17.6.4.3.2)开头.开头是下划线,后面是大写字母,用于任何用途。为什么这样的后缀不会在_ 后面加上一个数字呢?即_4或_3musketeers
Musketeer dartagnan = "d'Artagnan"_3musketeers;
int num = 123123_4; // to be interpreted in base4 system?
string s = "gdDadndJdOhsl2"_64; // base64decoder发布于 2011-04-25 15:04:28
“可以”与“五月”。
可以表示能力,其中可以表示许可。
是否有理由不允许开始一个用户定义的文字后缀,后面跟着一个数字?
权限意味着编码标准或最佳实践。您提供的示例似乎表明,如果正确使用(表示数字基),_\d将细化后缀。不幸的是,你的问题不能有一个深思熟虑的答案,因为还没有人对这一新的语言特性有经验。
为了明确一点,user-defined literal suffixes 可以从_\d开始。
发布于 2011-07-01 06:30:11
我知道,我有一些关于这个主题的论文:数字分离器描述了使用_作为数字字符分隔符的建议
用户定义文字的模糊性和不安全性描述了关于文字后缀命名和命名空间保留的思想的演变,以及对未来数字分隔符解构用户定义文字的努力。
它看起来对_位分隔符没有那么好的效果。
不过,我有一个主意:用反斜杠还是用反勾来表示数字分隔符?它不像_那样好,但我认为只要反斜杠在数字流中,就不会有任何碰撞。据我所知,反勾号目前没有词汇用法。
i = 123\456\789;
j = 0xface\beef;或
i = 123`456`789;
j = 0xface`beef;这将使_123保留为文字后缀。
https://stackoverflow.com/questions/5777991
复制相似问题