Mah*_*esh 1 c++ typedef language-lawyer gcc4 visual-studio-2012
将原始类型的typedef改为另一种原始类型是有效的C++吗?
typedef int long;
Run Code Online (Sandbox Code Playgroud)
在VS 2012上,发出警告但编译正常.
警告C4091:'typedef':当没有声明变量时,在'long'的左边忽略
但是在gcc-4.3.4上,它失败了.
错误:声明不声明任何内容.
哪个编译器符合标准?
PS:我不会在生产代码中写这样的东西.刚想出想法和检查.
他们都说同样的话,但有人报告说这是一个错误.请注意,VS警告说"typedef被忽略了".问题是int long
并且long int
是同义词,所以你基本上创建了一个未命名typedef
的long
.