编程语言 C++ 的名称来源于父语言 C 和++ 运算符(可以说应该是++C),因此,表达式 C++
可能自然地出现在 C++ 程序中.我想知道您是否可以使用 2011 标准(不带扩展名)编写一个有效的 C++ 程序,并在引号内和 pre 之后包含表达式 C++11
-处理(注意:编辑要求,另见答案)。
显然,如果您可以使用表达式 C++98
或 C++03
编写早于 2011 标准的 C++ 程序,那么答案很简单是的。但我不认为这是可能的(虽然我真的不知道)。那么,C++11 的新军械库能做到吗?
最佳答案
NO 如果我们要求字符 C++11
在任何文字之外,在预处理之后 -- 因为在翻译阶段 7三个标记将是 identifier
、++
和 integer-literal
前两个标记是postfix-expression
,后面是primary
。
可以依次包含这两个非终结符的语法没有减少,因此任何包含 C++11
的程序都将无法进行语法分析。
然而,如果您不认为字 rune 字是字符串,那么答案是 YES,因为您可以将它包含在宽字 rune 字中:
int main()
{
wchar_t x = L'C++11';
}
不使用预处理器或字符串字面量,该结构需要标准支持:
The value of a wide-character literal containing multiple c-chars is implementation-defined.
关于c++ - 是否存在具有表达式 'C++11' 的有效 C++11 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816175/