嗨,在boost mpl文档中,我发现了mpl::string和以下示例:
typedef mpl::string<'hell','o wo','rld'> hello;
我有点惊讶,因为我认为在C或C++中,我们无法在字符'之间有多个字符?
这是正常而有效的吗?
嗨,在boost mpl文档中,我发现了mpl::string和以下示例:
typedef mpl::string<'hell','o wo','rld'> hello;
我有点惊讶,因为我认为在C或C++中,我们无法在字符'之间有多个字符?
这是正常而有效的吗?
是的,这是有效的 C++ 代码。根据任何现有的 C++ 标准,可以从 [lex.conn] 章节得知:
一个普通字符字面值如果包含多个 c-char,那么它就是一个 多字符字面值。多字符字面值的类型是
int
,其具体实现取决于编译器。