2011-04-25 99 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