草庐IT

redef_without_warning

全部标签

C++ 从 0 :n-1 (n > k) without replacement 范围内随机抽取 k 个数

我正在努力将MATLAB模拟移植到C++中。为此,我试图复制MATLAB的randsample()function.我还没有想出一个有效的方法来做到这一点。所以我问大家,在C++中,如何最好地从0:n-1(对于n>k)范围内随机抽取k个数字而不进行替换?我考虑过以下伪代码(灵感来自cppreference.com上的第三个示例),但我觉得它有点hacky:initializevectvofsizenfori=0ton-1v[i]=ishufflevreturnv[0tok-1]这里的缺点也是需要先构建一个庞大的数组。这似乎是缓慢/笨拙的矫枉过正。如果您能提供帮助,我很乐意在这里提供一些

c++ - 使用 'g++' 结果为 "warning: will never be executed"

我继承了一个C++项目。我在RHELbuild5.5与GCC4.1.2通过makefile。该项目很大(数百个文件),总的来说代码还不错。然而,在编译过程中,我经常收到一个GCC警告,上面写着(prefix"/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../include/c++/4.1.2"):/bits/allocator.h:Inconstructor‘std::allocator::allocator()[with_Tp=char]’:/bits/allocator.h:97:warning:willneverbeexecuted

c++ - 为什么编译器在我定义了 _CRT_SECURE_NO_WARNINGS 之后仍然警告我不安全的 strtok?

我正在使用适用于Windows桌面的VisualStudioExpress2012。我总是出错ErrorC4996:'strtok':Thisfunctionorvariablemaybeunsafe.Considerusingstrtok_sinstead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.Seeonlinehelpfordetails.当我尝试构建以下内容时:#include"stdafx.h"#define_CRT_SECURE_NO_WARNINGS#include#includeusingnamespacestd;

c++ - 警告 : function uses 'auto' type specifier without trailing return type

下面的代码给出了下面的警告。有人可以解释原因吗(请注意代码没有用,因为我用int替换了我的类型来制作一个完整的示例)。警告:“MaxEventSize()”函数使用“auto”类型说明符而没有尾随返回类型[默认启用]想法是获取特定结构的最大大小(类型位于int所在的位置)。templateconstexprTcexMax(Ta,Tb){return(a 最佳答案 auto返回类型“没有尾随返回类型”是C++14的一个特性,所以我想你正在编译C++11。您的代码适用于C++14,但对于C++11,如果您想使用auto作为返回类型,您需

c++ - GCC 选项 : warning on non-void functions without a return statement

如果存在具有非空返回值但在其定义中不包含return语句的函数,是否有生成错误/警告的GCC/g++选项?例如:intadd(inta,intb){a+b;} 最佳答案 -Wreturn-type.它由-Wall(您应该始终与-Werror-Wextra一起运行)启用。 关于c++-GCC选项:warningonnon-voidfunctionswithoutareturnstatement,我们在StackOverflow上找到一个类似的问题: https:

c++ - g++ 表示 : warning: statement has no effect for shift bits operators

我正在实现alkhwarizmi算法。没错,但我的g++编译器不喜欢移位运算符:>>和当我编译它时,我得到这个输出:>g++-Wall-std=c++0x-o"Al-khwarizmialgorithm.o""Al-khwarizmialgorithm.cpp"(indirectory:/home/akronix/workspace/Algorithms)>Al-khwarizmialgorithm.cpp:Infunction‘intalkhwarizmi(int,int)’:Al-khwarizmialgorithm.cpp:31:9:warning:statementhasnoe

c++ - const change without const_cast<> 为什么没有编译器警告/错误?

演示问题的代码示例:#include#includevoiduseCallback(std::functioncallback){}intmain(){std::functioncallback=[](charconst*){};useCallback(callback);return0;}是的,const最终移除是良性的,useCallback()在其API中声明它已准备好接受并使用修改其参数的回调,因此它可以很好地处理不这样做的函数。为什么阻止传递std::set的参数呢?到一个需要std::set的函数不在这里申请?该论点正确地指出char*和charconst*是不同的类型,因

c++ - 微软 Visual Studio : Loading resources in Qt application (without plug-in)

我们没有为MSVS安装Qt插件,这让我想知道如何/是否可以将资源(图像等)加载到应用程序。 最佳答案 是的,您可以加载资源。不幸的是,创建qrc文件的qrc编辑器是VS的Qt插件的一部分...但是您可以手动创建此xml文件,格式请参见here创建qrc文件后,您至少有两种可能性:A)使用qmake在您的pro文件中添加对您的qrc文件的引用:RESOURCES=ApplicationResources.qrc使用qmake从您的pro重新生成您的vcprojqmake-tpvcB)如果您不从pro文件生成vcproj文件,您可以:在

c++ - 忽略注释 : offset of packed bit-field without using "-Wno-packed-bitfield-compat"

当我尝试编译以下union时,弹出此警告:10:5:note:offsetofpackedbit-field'main()::pack_it_in::::two'haschangedinGCC4.4#pragmaGCCdiagnosticignore"-Wpacked-bitfield-compat"unionpack_it_in{struct{uint8_tzero:3;uint8_tone:2;uint8_ttwo:6;uint8_tthree:4;uint8_tfour:1;}__attribute__((packed))u8_2;uint16_tu16;};#pragmaGCC

c++ - 对齐 : warning C4316 in all classes that have aligned members

今天我遇到了很多麻烦,因为我跟踪了一个非常隐蔽的腐败漏洞。我想如果我真的注意警告就不会那么难找到它,但由于找不到有关为什么弹出此特定警告的相关信息,我让它滑动了,这是一个错误。所以这是VisualStudio2013给我的有罪警告:warningC4316:objectallocatedontheheapmaynotbealigned16它是在通过const引用将align(16)临时传递给构造函数时生成的,如以下代码所示:classVector{};__declspec(align(16))classVectorA{};classShape{public:Shape(constVec