2011-04-25 92 views
12

喜升压MPL文件,我已经发现MPL ::字符串,下面的例子:升压MPL串

typedef mpl::string<'hell','o wo','rld'> hello; 

我有点惊讶,因为我认为,在C或C++中,我们不能有字符''之间的多个字符?

这是正常和有效的吗?

+1

只是一个FYI。这(http://cpp-next.com/archive/2012/10/using-strings-in-c-template-metaprograms/)文章有更好的解决方案,如果你有c + + 11可用。 – KitsuneYMG 2013-01-30 15:17:32

+0

那个链接现在已经死了:( – 2015-01-06 22:54:29

回答

10

是的,它是有效的C++。从任何现有的C++标准,段[lex.conn]:

字面普通字符包含一个以上的C-炭多字符字面。多字符文字具有类型int和实现定义的值。

+3

哦,这就是为什么我们不能在' – Guillaume07 2011-04-25 11:12:25