草庐IT

return_random

全部标签

c++ - 为什么 for_each + lambda 会触发 -Waggregate-return 警告?

当尝试使用gcc和-Waggregate-return标记警告的以下示例时:functioncallhasaggregatevaluetriggers:structElement{//...stuff...}Containerelements(10);for_each(begin(elements),end(elements),[](Element&e){//...modifyelements...});据我所知,-Waggregate-return标记“如果定义或调用任何返回结构或union的函数时发出警告”,因为如果我理解正确的话,您可能通过返回足够大的对象来溢出堆栈。但是,for

c++ - const ref lvalue to non-const func return value 是否专门减少拷贝?

我遇到了一个C++习惯,我试图研究它以了解它的影响并验证它的用法。但我似乎找不到确切的答案。std::vectorgetThings();voiddo(){conststd::vector&things=getThings();}这里我们有一些返回非const&值的函数。我看到的习惯是在分配函数的返回值时使用const&左值。提出这个习惯的原因是它减少了拷贝。现在我一直在研究RVO(返回值优化)、复制省略和C++11移动语义。我意识到给定的编译器可以选择阻止通过RVO进行复制,不管这里是否使用了const&。但是,在防止复制方面,const&左值的使用对非const&返回值有任何影响吗

c++ - 设计建议——返回子类时避免 "invalid covariant return type"

我有以下情况:我指定一个纯虚函数:虚拟PredictedMatchPredictMatch(constMatch&match)const=0;我还有:类ImpactPredictedMatch:publicPredictedMatch现在,我想做的是:ImpactPredictedMatchPredictMatch(constMatch&match)const;在一个实现了之前的纯虚函数的类中。我原以为编译器会根据需要简单地转换返回的类型,但我得到:impact_predictor.h:18:24:错误:“虚拟ImpactPredictedMatchImpactPredictor::P

c++ - 为什么要在这个 return 语句中使用这个逗号?

这个问题在这里已经有了答案:Whatdoesthecommaoperator,do?(8个答案)C++--returnx,y;Whatisthepoint?(18个答案)关闭6年前。我明白这个C++函数是做什么的,但是我不明白为什么return语句是这样写的:intintDivide(intnum,intdenom){returnassert(denom!=0),num/denom;}这里只有一个语句,因为只有一个;但逗号让我很困惑。为什么不写:intintDivide(intnum,intdenom){assert(denom!=0);returnnum/denom;}除了“优雅”之

c++ - 视觉 C++ 错误 : function must return a value

我正在做一个多平台项目,有些平台禁用了功能,在这些功能的界面中,我经常做的事情是这样的:boolFoo::bar()const{//disabledabort();}GCC/LLVM不要求非void函数返回值(它们只是给出警告),在这种情况下,我调用abort()时,它们足够聪明,甚至不会发出警告(因为该函数永远不会返回)。有没有办法(编译标志?)让VisualC++2010以相同的方式运行,这样我就不会继续破坏Windows构建?我知道我总是可以在中止后返回值,但在其他平台上工作时我通常会忘记这一点,不给出错误的行为似乎更合适。 最佳答案

c++ - 如何使用 boost::random_device 生成密码安全的 64 位整数?

我想做这样的事情:boost::random_devicerd;boost::random::mt19937_64gen(rd());boost::random::uniform_int_distributiondis;uint64_tvalue=dis(gen);但我读到梅森扭曲器在密码学上并不安全。但是,我还读到一个random_device可能是,如果它从/dev/urandom中提取数据,这可能在linux平台(我的主要平台)上。因此,如果random_device是非确定性随机的并且它用于播种梅森扭曲器(如上所示),这是否也使梅森扭曲器在密码学上是安全的(即使它本身不是)?我

c++ - 如果函数调用是 return 语句,编译器能否自动 move 函数参数?

在以下情况下,编译器可以自动move函数参数v还是必须手动声明?std::vectorFilter(std::vectorv);voidDoSomeStuffAndCallFilter(std::vectorv){//dosomestufftov//canthecompilerautomaticallystd::movevinthiscall?//ie.returnFilter(std::move(v));//returnFilter(v);} 最佳答案 在您的情况下,编译器可以在as-if规则下作为允许的优化来执行此操作,因为它非

c++-default_random_engine 始终创建相同的数字系列

我正在使用神经网络,我想随机创建权重。因此,如果我创建30个神经网络,它们中的每一个最终都具有相同的权重(应该是随机的),所以当我给它们所有相同的输入时,输出是相同的,而在不应该的时候。有帮助吗?这里是主要功能intmain(){std::vectorv;std::random_devicerd;std::default_random_enginegenerator(rd());std::uniform_real_distributiondistribution(-1.0,1.0);for(inti=0;iinitialize_weights在这里:voidImproved_NN::i

c++ - 是否允许在 requires 表达式中为 return-type-requirement 指定类型?

看看这个简单的概念示例:templaterequiresrequires(Tt){{t+t}->bool;}voidfn(){}intmain(){fn();}这里,我使用bool作为return-type-requirement的type-constraint。当前稿says:type-constraint:nested-name-specifieroptconcept-namenested-name-specifieroptconcept-name所以type-constraint必须是一个concept-name。bool(或任何类型)是否允许作为概念名称?如果是,那是什么意思,

c++ - 首选哪个,return const double& OR return double

给定以下场景,以下哪一项是首选。m_state是一个成员评价者,而不是局部变量。classC{private:doublem_state;public:doublestate()const{returnm_state;}//returnsdoubledouble&state(){returnm_state;}}===========================================classC{private:doublem_state;public:constdouble&state()const{returnm_state;}//returnsconstdouble&