草庐IT

c++ - Comeau vs g++ [又一个错误]

考虑以下测试1代码structA{private:classface;friendclassface;};structA::face{};templatestructC:publicA::face{};intmain(){Cx;}这段代码格式正确吗?我在g++和comeau下测试了它。g++可以很好地编译它,而comeau会给出以下错误消息(我认为这是正确的)"ComeauTest.c",line12:error:class"A::face"(declaredatline9)isinaccessiblestructC:publicA::face^detectedduringinstan

c++ - 检测类是否具有重载函数在 Comeau 编译器上失败

我正在尝试使用SFINAE来检测类是否具有采用特定类型的重载成员函数。我的代码似乎可以在VisualStudio和GCC中正常工作,但无法使用Comeau在线编译器进行编译。这是我使用的代码:#include//Comeaudoesnt'haveboost,sodefineourownenable_if_ctemplatestructenable_if_c{typedefvoidtype;};templatestructenable_if_c{};//ClassthathastheoverloadedmemberfunctionclassTestClass{public:voidFun

c++ - 匿名空无标记类、结构、 union 和枚举

!免责声明!:请注意,我说的是未标记声明。我知道这可能是一个非正式术语,我的意思是声明不是typedef并且它不声明匿名类型的对象。在这些情况下,一切都很清楚。问题一:以下哪个是格式正确的C++程序?(多选)//Oneintmain(){struct{};//orclass{};shouldbethesame}//Twointmain(){enum{};}//Threeintmain(){union{};}备注:MSVC9.0接受所有这三个。在第一位,它给出了警告。在第二和第三,我们得到0个错误和0个警告。在线comeau仅接受三号,一号和二号无法编译,并显示诊断消息“声明未声明任何内

c++ - 将指针转换为模板参数 : Comeau & MSVC compile, GCC 失败

考虑以下代码:templateclassbase{};intmain(){basetest;return0;}Comeau和MSVC都可以毫无问题地编译它(除了Comeau警告未使用的变量),而GCC在basetest;上失败行,说明Infunction`intmain()':acaststoatypeotherthananintegralorenumerationtypecannotappearinaconstant-expressiontemplateargument1isinvalid它到底在提示什么?谁是对的——这段代码应该编译吗?值得注意的是,我的GCC版本非常旧(3.4.2

c++ - 关于 C++ 编译器的几个问题 : GCC, MSVC、Clang、Comeau 等

我有几个关于C++编译器的问题C++编译器是否需要one-passcompiler?标准是否在任何地方谈论它?特别是GCC是一次性编译器吗?如果是,那么为什么它会在thisexample中生成以下错误两次(尽管每个错误消息中的模板参数都不同)?error:declarationof‘adderitem’shadowsaparametererror:declarationof‘adderitem’shadowsaparameter一个更一般的问题one-passcompiler的优点和缺点是什么?和multi-passcompiler?有用的链接:AListofC/C++compiler

c++ - "template"不需要关键字? [gcc/clang/Comeau 错误?]

这是测试代码templatevoidf(){Tt;t.f(0);//compilesevenwithoutthe"template"keyword,whatamImissing?}classabc{public:templatevoidf(int){}};intmain(){f();}我正在使用g++4.4.6。谢谢P.S:我已经大大编辑了我的问题。请不要介意。编辑:我向EDG的人问了这个问题,这是MikeHerrick不得不说的Wedodiagnosethisasanerrorin--strictmodeaswellasanymodethatenablesdependentnamel

c++ - 与 gcc 相比,comeau 编译器值得吗?

到目前为止,我一直在使用gcc、g++进行C、C++应用程序开发,并且发现它非常棒。但是浏览StackOverflow我发现许多成员表示Comeau编译器中的错误报告比任何其他编译器都多。这是真的?我没有投资编译器的任何商业版本。当gcc、g++可以解决问题时,花钱购买C/C++编译器的商业版本真的值得吗? 最佳答案 我编写C++的经验是,使用多个编译器编译代码是发现代码中奇怪的极端情况的好方法。在我们的例子中,我们使用了gcc、Applegcc和VisualStudio编译器cl(免费)。在Windows上,我更喜欢cl编译器,因