草庐IT

my_variable_double

全部标签

c++ - 了解使用 std::condition_variable 的示例

有一个使用condition_variable的例子来自cppreference.com:#include#include#include#include#include#includeintmain(){std::queueproduced_nums;std::mutexm;std::condition_variablecond_var;booldone=false;boolnotified=false;std::threadproducer([&](){for(inti=0;ilock(m);std::coutlock(m);notified=true;done=true;cond

c++ - 使用 C++11 std::condition_variable 的 Gtest 意味着 valgrind 错误

如果我以这种方式使用google测试框架编写测试:TEST_F(TestFName,TestName){std::condition_variablecv;}它会生成一个valgrind错误。我使用--leak-check=full--track-origins=yes选项运行它。Conditionaljumpormovedependsonuninitialisedvalue(s)==17215==at0x4E3DA82:pthread_cond_destroy@@GLIBC_2.3.2(pthread_cond_destroy.c:35)...Uninitialisedvaluewa

c++ - 模棱两可的调用 : int to double or bool

我有一个参数类,我重载了构造函数以接受bool值或double值。当你给它一个int时,它无法构建:errorC2668:'Parameter::Parameter':ambiguouscalltooverloadedfunctioncouldbe'Parameter::Parameter(std::string,std::string,double)'or'Parameter::Parameter(std::string,std::string,bool)'我相信我有两个选择:使用int默认值重载将我的变量显式转换为double我有很多参数,其中一些是无符号长整型、float等(在多

c++ - double float 的显示及其比较

序言我正在研究一个为不懂浮点运算的人开发的系统。出于这个原因,float比较的实现不会暴露给使用该系统的人。目前float的比较是这样发生的(由于遗留原因,这不能改变)://Ifeithernumberisnotfinite,dodefaultcomparisonif(!IsFinite(num1)||!IsFinite(num2)){output=(num1==num2);}else{//Getexponentsofbothnumberstodetermineepsilonforcomparisontmp=(OSINT32*)&num1+1;exp1=(((*tmp)>>20)&0x

c++ - 在主程序退出期间销毁等待 std::condition_variable 的线程的正确方法

我正在使用std::conditional_variable为多线程程序中的信号计时,以控制各个关键部分的流程。该程序可以运行,但在退出期间我不得不使用谓词(kill_==true)来避免破坏仍在等待std::conditional_variable::wait()的线程。我不知道它是否是销毁所有等待线程的正确方法,征求意见。这是一个代码片段:classtimer{//...timer(std::shared_ptrparent,constbool&kill):parent_(parent),kill_(kill){}private:std::condition_variablecv_

c++ - 为什么我的 double 可以包含低于机器 epsilon 的值?

我正在使用double求解一个方程,我得到的是-7.07649e-17而不是0。我同意它非常接近,我可以说它是相等的,但是I'vereadthatthemachineepsilonfortheC++doubletypeis2^-52这比我得到的值大。那么为什么我的值比机器epsilon低?为什么该值不四舍五入为零?这没什么大不了的,但是当我进行逻辑测试时,我的值似乎不为零... 最佳答案 这个故事中有两个不同的常量。一个是epsilon,它是一个最小值,当添加到1.0时会产生不同于1.0的值。如果将较小的值添加到1.0,您将再次得到

c++ - 编译器使用的 double 表示的显式规范

最近遇到visual-c++好像不是IEEE754的问题兼容,而是使用subnormalrepresentation.也就是说,其中的doublefloat没有通常表示的1个符号位、11个指数位和52个显式存储的有效小数位,见下文。由于gcc和clang是兼容的,因此非常需要一致的跨平台行为我想知道是否可以强制visual-c++使用正常表示。或者让gcc和clang使用次正规表示当然也可以解决问题。不同双重表示的问题可以在visual-c++中重现,gcc和clang使用以下代码:#include#includeintmain(){try{std::stod("8.097571188

c++ - Swig:如何包装 double&(double 通过引用传递)?

我正在使用SWIG从Python访问C++代码。我如何优雅地包装一个函数,该函数返回通过引用传递的变量中的值voidset(double&a){a=42.;}我不知道该怎么做。在最好的情况下,我将能够在Python中使用带有Pythonfloat的函数:>>>b=2.>>>set(b)>>>printb42.0目前它给了我一个TypeError:inmethod'TestDouble_set',argument2oftype'double&'。 最佳答案 这样做:你的swig接口(interface)文件:%include%appl

c++ - 解析 double 的普通 python 列表

解析这样一行的最佳方法是什么(元素数量不固定):[0.0125,2.9518e+02,1.2833e+00,-3.5302e-04,1.2095e+01,1.0858e-01,1.2112e-04,1.1276e+03]#comments在C++中获取double的std::vector?我已经这样做了:vectorread_line(stringline){vectorcoefficients_line;//eraseallbefore[andallafter]size_tfound1=line.find("[");if(found1==string::npos)cerrcoeffi

c++ - 无法识别的类型 - 'Error: Variable "[var-name ]"is not a type name'

作为项目的一部分,我正在创建一个处理物理的类。我们被告知要使用一个处理任意行为的类。我创建了一个类,它将根据提供给它的模块更新内部状态(代码如下)。但是,表示内部状态的结构PhysicsData除了它自己的文件外,在任何地方都无法识别。任何人都可以解释一下吗?(对于大量信息的转储,我们深表歉意,但是问题所在的对象和问题所在的位置之间的差距非常大,减少额外的细节也会删除可能有用的上下文)这里是有问题的结构:#pragmaonce//Thisfile"PhysicsBehaviourBase.h"#include#includestructPhysicsData{public:D3DXVE