草庐IT

smart-warning

全部标签

IDEA中的神仙插件——Smart Input (自动切换输入法)

IDEA中的神仙插件——SmartInput(自动切换输入法)设置更多功能详见官方文档:Windows版SmartInput使用入门

c++ - "warning C4800: ' int' : forcing value to bool 'true' or 'false' "不同场景下的不同行为

我无法理解此警告的以下行为。case1:boolread=(33&3);//NoWarningissuedbyvs2013case2:intb=33;boolread=(b&3);//NowcompilerisgeneratingC4800warning.为什么编译器在情况2中生成警告,而在情况1中不发出任何警告。 最佳答案 C4800是一个性能警告-在运行时将整数强制转换为bool会产生成本。这与逻辑正确性无关。最常见的强制转换(和警告)发生在您与使用整数(VC++中的BOOL)作为bool值的代码交互时。第一个代码段中的编译时强

c++ - 用C++17编译Eigen需要_SILENCE_CXX17_NEGATORS_DEPRECATION_WARNING定义

我正在尝试分配一个稀疏矩阵block,但无法让它工作。似乎eigen使用的函数已被弃用,我可以用一些定义来修复它。但是,我确定我是应该将这些定义添加到项目中还是等待更新版本的Eigen。你们能否就定义的副作用提出建议。我写的程序是这样的#includeintmain(){Eigen::SparseMatrixm(4,4);m.block(0,0,2,2)这是警告:1>d:\eigen_3.3.4\eigen\src\core\functors\stlfunctors.h(87):errorC4996:'std::unary_negate':warningSTL4008:std::not

c++ - %llx 格式说明符 : invalid warning?

已编辑以删除第一个警告以下代码在mingw32下的g++4.4.0中按预期工作:#includeintmain(){longlongx=0xdeadbeefc0defaceLL;printf("%llx\n",x);}但是如果我使用-Wall启用所有警告,它会说:f.cpp:Infunction'intmain()':f.cpp:5:warning:unknownconversiontypecharacter'l'informatf.cpp:5:warning:toomanyargumentsforformat%lld也是一样。这在较新的版本中已修复吗?再次编辑添加:如果我指定-std

c++ - 从其他容器中辨别 smart_pointer 的模板函数

考虑以下模板函数:templateconstT*DoSomething(constT&t){auto&id=typeid(T);coutT*DoSomething(T*t){auto&id=typeid(T);coutclasscontainer>T*DoSomething(constcontainer&t){auto&type_id=typeid(T);auto&container_id=typeid(container);coutclasscontainer,templateclassdeleter=default_delete>T*DoSomething(constcontain

c++ - 杂乱的函数指针 : how to remove the warning?

正如我在thispost中提问和回答的那样.我有以下示例代码。#includecharfoo(){return'a';}charbar(){return'b';}charblurga(){return'c';}charbletch(){return'd';}char(*gfunclist[])()={foo,bar,blurga,bletch};char(*(*x())[])(){staticchar(*funclist[4])()={foo,bar,blurga,bletch};returnfunclist;}intmain(){printf("%c\n",gfunclist[0](

c++ - 加速 C++ : Can I substitute raw pointers for smart pointers?

我喜欢这本书,遗憾的是它没有涵盖智能指针,因为它们在当时不是标准的一部分。那么在阅读本书时,我能否公平地将每个提到的指针分别替换为智能指针和引用? 最佳答案 “智能指针”有点用词不当。“聪明”的部分是他们会为你做一些事情,不管你是否需要、想要,甚至是否理解那些事情是什么。这真的很重要。因为有时候你会想去商店,智能指针会driveyoutochurch.智能指针解决了一些非常具体的问题。许多人会争辩说,如果你认为你需要智能指针,那么you'reprobablysolvingthewrongproblem.我个人尽量不偏袒任何一方。相反

c++ - "#pragma GCC diagnostic warning"与海湾合作委员会

这个问题在这里已经有了答案:HowcanIdisable#pragmawarnings?(5个答案)关闭9年前。我使用GCC4.5.1并收到如下警告:warning:expected[error|warning|ignored]after'#pragmaGCCdiagnostic'原因是“#pragmaGCCdiagnosticpush”,对于4.6版之前的GCC不存在。我不能更改代码(这不是我的)和GCC版本。我怎样才能禁用这些警告?一些GCcflags可能是?P.S.:我看到Why"pragmaGCCdiagnosticpush"popwarninginGCC/C++?,但我的问题

c++ - smart_ptr 到类段错误的属性

我想知道这个例子是否会导致段错误,因为对象的dtor被调用了,我仍然持有指向对象属性的shared_ptr。structfoo{std::shared_ptrconstbar=std::make_shared("foo");foo(){std::coutptr;{std::shared_ptrfoo_ptr=std::make_shared();ptr=foo_ptr->bar;}std::cout 最佳答案 不,它不会。通过将std::shared_ptr分配给另一个,您可以阻止它死亡。此操作ptr=foo_ptr->bar;会将

c++ - 如何在 GCC 中禁用#warning 消息?

GCC中有一个名为#warning的预处理器指令,它只是在编译时使用附加的字符串发出警告。海湾合作委员会documentation说这可以用-Wno-cpp标志禁用。但是,此标志似乎不起作用。我在用海湾合作委员会4.4.3。一个简单的测试用例是这样的:#include#warning"Hello"intmain(){}结果是:$g++warn.ccwarn.cc:2:2:warning:#warning"Hello"$g++warn.cc-Wno-cppwarn.cc:2:2:warning:#warning"Hello"文档有错吗? 最佳答案