草庐IT

Pedantic

全部标签

c++ - boost::proto::is_aggregate 为聚合类型时返回 false

在测试聚合类型时,我尝试使用boost::proto::is_aggregate来检查我创建的类型是否真正聚合。我写了这段代码:#include#includestructIsAggregate{IsAggregate&operator=(IsAggregateconst&rhs){}};intmain(){std::cout()我希望输出为真,因为聚合类型可以定义复制赋值运算符(根据此:WhatareAggregatesandPODsandhow/whyaretheyspecial?)但是输出是错误的。我还在之前的答案中使用了聚合类,它应该返回true却返回了false。这已在Boo

c++ - g++ 可变大小数组没有警告?

inta;cin>>a;intints[a];为什么这在编译时不抛出任何类型的警告?我怎么知道这个数组什么时候实际使用堆或堆栈?g++-std=c++11-Wall*.cpp-omain 最佳答案 ISOC++不允许使用可变长度数组,g++很高兴地告诉你,如果你通过传递-pedantic来增加它的严格性旗帜。使用-pedantic将对违反标准的事情发出警告。如果你想要g++发出错误并因此拒绝编译;使用-pedantic-errors.g++-Wall-pedantic-std=c++11apa.cppapa.cpp:Infuncti

c++ - 为什么 GCC 允许在 C++ 中使用 round() 即使带有 ansi 和 pedantic 标志?

即使使用-ansi和-pedantic标志,这个程序在GCC下编译是否有充分的理由?#includeintmain(intargc,char*argv[]){doublex=0.5;returnstatic_cast(round(x));}使用g++-ansi-pedantic-Walltest.cpp-otest编译干净(甚至没有警告)。我看到两个问题:round()不应该在符合ISO的模式下对C++可用(因为它来自C99)即使round()在这种情况下可用,它也只能在std命名空间中可用我错了吗? 最佳答案 Thisisabug

编译 -ansi -pedantic -Wall 自动切换 gcc

我们需要这样使用gcc编译C源代码:gcc-ansi-pedantic-Wallprogram.c我想知道如何“自动化”这个,所以当我输入时:gccprogram.c它将自动编译3个开关。这可能吗? 最佳答案 您还可以使用make的隐式规则,这样您就不必为每个程序都编写一个makefile。如果你说makefoo并且当前目录中存在foo.c文件,Make将自动调用编译器。要为此添加标志,请在您的环境中定义变量CFLAGS,例如在bash中添加exportCFLAGS="-Wall-pedantic-ansi"到.bashrc。如果您

编译 -ansi -pedantic -Wall 自动切换 gcc

我们需要这样使用gcc编译C源代码:gcc-ansi-pedantic-Wallprogram.c我想知道如何“自动化”这个,所以当我输入时:gccprogram.c它将自动编译3个开关。这可能吗? 最佳答案 您还可以使用make的隐式规则,这样您就不必为每个程序都编写一个makefile。如果你说makefoo并且当前目录中存在foo.c文件,Make将自动调用编译器。要为此添加标志,请在您的环境中定义变量CFLAGS,例如在bash中添加exportCFLAGS="-Wall-pedantic-ansi"到.bashrc。如果您

c++ - 为什么 lambda 参数的默认参数会触发“-pedantic”GCC 警告?

我的代码中某处有这个lambda:[](boola,bool=true){return!a;}}和GCC4.6“提示”这个警告:warning:defaultargumentspecifiedforlambdaparameter[-pedantic]当您不知道为什么这是“坏的”时,这非常无用。我查阅了FDISn3290并没有在5.1.2Lambda表达式中找到关于默认参数和lambda的任何内容。更新:我提交了错误报告here.UPDATE2:好的,从现在开始我使用-pedantic-errors。-pedantic只发出警告,而不发出错误。 最佳答案

c++ - 为什么 lambda 参数的默认参数会触发“-pedantic”GCC 警告?

我的代码中某处有这个lambda:[](boola,bool=true){return!a;}}和GCC4.6“提示”这个警告:warning:defaultargumentspecifiedforlambdaparameter[-pedantic]当您不知道为什么这是“坏的”时,这非常无用。我查阅了FDISn3290并没有在5.1.2Lambda表达式中找到关于默认参数和lambda的任何内容。更新:我提交了错误报告here.UPDATE2:好的,从现在开始我使用-pedantic-errors。-pedantic只发出警告,而不发出错误。 最佳答案

c++ - 使用 -pedantic 编译时采用 std::reference_wrapper 的模糊构造函数

我有一个带有复制构造函数和采用std::reference_wrapper的构造函数的类:#include#includeclassClass{public:Class(){std::cout){std::cout)"){std::cout)"正常编译时(g++--std=c++17test.cpp)这会按预期工作,依次调用四个构造函数:$./a.exeClass()Class(Classconst&)Class(std::reference_wrapper)Class(std::reference_wrapper)但是,使用-pedantic(即g++--std=c++17-peda
12