C ++ 0x遗留代码问题

时间:2010-11-03 18:11:52

标签: syntax c++11 legacy-code

众所周知,由于遗留代码,C ++ 0x无法带来许多重要更改:所有遗留代码(包括C代码)都可以与C ++ 0x编译器进行编译。

那么为什么不添加类似#pragma syntax(language_version)的内容,这会允许新语法发生重大变化?

#include <legacy_code_header.h>

#pragma syntax(2098)

// something strange
func(x)
{
   return x + 1, x * 2;
}

int main()
{
   a, b = func(1.0);
   return a + b;
}

1 个答案:

答案 0 :(得分:0)

某些C ++ 0x编译器可能允许这样做。毕竟,#pragmas通常是编译器特定的,不受标准规定。其他人通过命令行选项支持这一点。