我有大量代码正在尝试从 g++ 版本 4.2.2 转换为 4.7.2。在 4.2.2 及之前的版本中,它似乎uint
被定义为unsigned int
. 我知道这不是标准的 c++ 东西,真正的男人编写 ISO 标准 C++,但我想知道是否有一个标志或某种方式让 g++uint
在不修改所有源文件的情况下接受。我可以更改CPPFLAGS
或添加开关到 g++ 运行线吗?我的谷歌一无所获。我有一些来自不同工作组的源文件,我想接受他们的uint
违规行为。
例如
#include <iostream>
#include <fstream>
#include <assert.h>
using namespace std;
int main(void) {
uint foo = 0xdeadbeef;
cout<<hex<<foo<<endl;
}
产量:
/tmp/rbroger1/gcc_update rbroger1 @ plxc25804
% /usr/intel/pkgs/gcc/4.2.2/bin/g++ ~/tmp.cc && ./a.out
deadbeef
/tmp/rbroger1/gcc_update rbroger1 @ plxc25804
% /usr/intel/pkgs/gcc/4.7.2/bin/g++ ~/tmp.cc && ./a.out
/nfs/pdx/home/rbroger1/tmp.cc: In function 'int main()':
/nfs/pdx/home/rbroger1/tmp.cc:8:5: error: 'uint' was not declared in this scope
/nfs/pdx/home/rbroger1/tmp.cc:8:10: error: expected ';' before 'foo'
/nfs/pdx/home/rbroger1/tmp.cc:9:16: error: 'foo' was not declared in this scope