草庐IT

load_value

全部标签

c++ - 为什么 clang++ 报告与 "value stored to ' .. .' during its initialization is never read"的结构化绑定(bind)?

我有以下测试用例:testcase("[room]exits"){auto[center,east,north,south,west]=make_test_rooms();check_eq(center->east(),east);check_eq(center->north(),north);check_eq(center->south(),south);check_eq(center->west(),west+1);}当我编译它时,clang++(clangversion5.0.1(tags/RELEASE_501/final))报告:room.cpp:52:7:note:Valu

c++ - iterator_traits<InIter>::value_type 的创建是否会在传递时触发遵从? (异常测试)

我在故意为不特别遵守迭代器的函数抛出异常(出于测试目的)时遇到了麻烦。要了解我在做什么,请带上我的decorator_iterator结构:structdecorated_iterator:boost::iterator_adaptor,BaseIterator,boost::use_default,IteratorTag>{//....private:friendclassboost::iterator_core_access;/*usedtothrowanexceptionupondereference*/typenamebase_type::referencedereferenc

c++ - C4800 有任何实际值(value)吗?

MicrosoftC++编译器中的C4800警告如下所述:https://msdn.microsoft.com/en-us/library/b6801kcy.aspx制作这段代码://C4800.cpp//compilewith:/W3intmain(){inti=0;//try..//booli=0;boolj=i;//C4800j++;}抛出C4800警告:“'type':forcingvaluetobool'true'or'false'(performancewarning)”Microsoft似乎认为它相当重要,并将其列为3级警告,但Clang显然认为它不是,因为它的最高警告级

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++ - 编译cuda文件报错: "runtime library" mismatch value 'MDd_DynamicDebug' doesn't match value 'MTd_StaticDebug' in vectorAddition_cuda. o

我尝试在Qt5.2和MSVC2012环境下编译一个cuda文件。在开始我的项目之前,我仔细阅读了问题并回复:CompilingCudacodeinQtCreatoronWindows.但是即使我简单地复制代码并在qt中生成2个文件,仍然会弹出一些错误/main.cpp/vectorAddition.cu错误是:errorLNK2038:mismatchdetectedfor'RuntimeLibrary':value'MDd_DynamicDebug'doesn'tmatchvalue'MTd_StaticDebug'invectorAddition_cuda.o我完全不知道如何修复这

c++ - std::atomic::load 的内存排序行为

我是否错误地假设atomic::load也应该充当内存屏障以确保所有先前的非原子写入将对其他线程可见?举例说明:volatileboolarm1=false;std::atomic_boolarm2=false;booltriggered=false;线程1:arm1=true;//std::std::atomic_thread_fence(std::memory_order_seq_cst);//thiswoulddothetrickif(arm2.load())triggered=true;线程2:arm2.store(true);if(arm1)triggered=true;我预

c++ - Visual Studio 2008 : how to pause the running program to see a variable value?

我已经开始了一个很长的循环,我不想重新开始(已经运行了3个小时,我计算它只运行了1个小时),我担心我的程序运行不正确,因为它花了这么长时间长。我太愚蠢了,无法为自己实际输出任何状态值(我认为这不会花费3个该死的小时)。那么,当程序以“发布”模式从visualstudio启动时,是否有某种方法可以监视一个特定的变量值? 最佳答案 你要做的是附加到正在运行的进程加载代表项目的解决方案工具->附加到流程选择正在运行的进程并点击附加点击IDE上的暂停按钮停止进程或设置断点此时你将在调试器中崩溃并能够检查正在运行的程序

c++ - 避免使用 DirectXMath XMStore/load

我以前做过OpenGL,现在正在学习一些DirectX11。新数学库中的一件事是存在用于vector和矩阵的加载/存储方法(例如http://msdn.microsoft.com/en-us/library/ee415635(v=vs.85).aspx)。对我来说,这让我很奇怪,当我想使用它们时必须存储/加载每个vector和矩阵-很多笨重的代码-我想知道是否有任何好的、干净的替代加载/存储过程? 最佳答案 你可以看看simplemath如果有帮助的话。它现在是DirectXTK的一部分.来自链接站点:WhywrapDirectXM

c++ - Visual Studio 2017 : _mm_load_ps often compiled to movups

我正在查看为我的代码生成的程序集(使用VisualStudio2017)并注意到_mm_load_ps经常(总是?)编译为movups。我使用_mm_load_ps的数据定义如下:structalignas(16)Vector{floatv[4];}//oftenembeddedinotherstructslikethisstructAABB{Vectormin;Vectormax;boolintersection(/*parameters*/)const;}现在,当我使用这个构造时,会发生以下情况://thiscode__mm128bb_min=_mm_load_ps(min.v);

c++ - 仅允许从引用到长期值(value)的隐式构造

我已经实现了一个类型删除引用类,它可以从对任何类型的左值引用构造。但是,关于是否允许从r值构造,我遇到了一些进退两难的问题。我遇到过两个用例:将引用构造为局部变量inti=42;Referenceref1=i;//Thisisallowed.Referenceref2=42;//Thisshouldcauseacompileerror.将引用构造为函数参数voidfunc(Referenceref);inti=42;func(i);//Thisisallowed.func(42);//Thisshouldalsobeallowed.实际上,我想允许从任何生命周期大于引用的东西隐式构造一