C++0x 遗留代码问题
众所周知,由于遗留代码,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;
}
As all you know, C++0x can't bring lots of important changes because of legacy code: all legacy code (including C code) can be compilable with a C++0x compiler.
So why don't add something like #pragma syntax(language_version)
, which will allow new syntax with breaking changes?
#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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
某些 C++0x 编译器可能允许这样做。毕竟,#pragmas 通常是特定于编译器的,而不是由标准规定的。其他人通过命令行选项支持这一点。
Some C++0x compilers might allow this. After all, #pragmas are generally compiler specific and not dictated by the standard. Others support this with command line options.