为什么-ansi和-std = c ++ 11在g ++中发生冲突?

Jea*_*ier 4 g++ ansi c++11

为什么-ansi和-std = c ++ 11不能一起工作?(根据其他答案,ANSI恢复到C++ 98)我正在使用g ++ - 4.8.

这是ANSI批准的C++ 11:

http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+14882-2012

这让我感到困惑.谢谢!

Jon*_*ely 9

RTFM:

-ansi
在C模式下,这相当于-std=c89.在C++模式下,它相当于-std=c++98.

在有多个版本的标准之前添加了标志,并且标志仍然具有相同的含义.

你为什么要同时使用它们?如果你想-std=c++11使用它,不要添加另一个标志,这意味着其他矛盾的东西.

  • 我真的不想同时使用两者,但我通过添加一些 C++11 优点修改了在 makefile 中有 -ansi 标志的代码,起初我只将 -std=c++11 添加到标志中,不知道它会被-ansi反击。 (2认同)