草庐IT

THIS_FILE

全部标签

c++ - 创建线程并让 "this"指针从构造函数中逃逸总是安全的吗?

我对以下代码感到困惑(来自PreferUsingActiveObjectsInsteadofNakedThreads):classActive{public:classMessage{//baseofallmessagetypespublic:virtual~Message(){}virtualvoidExecute(){}};private://(suppresscopyingifinC++)//privatedataunique_ptrdone;//lesentinelmessage_queue>mq;//lequeueunique_ptrthd;//lethreadprivate

python - Pygraphviz 安装失败,错误代码为 1083 无法打开文件 graphviz/cgraph.h : No such file or directory

尝试使用pip安装pygraphviz1.3时出现以下错误消息fatalerror1083无法打开文件graphviz/cgraph.h:没有那个文件或目录错误:命令C:\Users\Appdata\Local\Programs\Common\Microsoft\VisualC++对于python\9.0\VC\Bin\cl.exe失败,状态为2我已经有MicrosoftVisualC++。我正在使用Python27。Pip工作正常,我已经成功安装了graphviz-2.38。我也试过这个命令:pipinstall--install-option="--include-path=\C:

c++ - 为继承 enable_shared_from_this 的类获取 unique_ptr

通常我更喜欢从工厂返回unique_ptr。最近我遇到了为继承enable_shared_from_this的类返回unique_ptr的问题。此类的用户可能会意外调用shared_from_this(),尽管它不属于任何shared_ptr,这会导致std::bad_weak_ptr异常(或C++17之前的未定义行为,通常作为异常实现)。代码的简单版本:classFoo:publicenable_shared_from_this{stringname;Foo(conststring&_name):name(_name){}public:staticunique_ptrcreate(c

c++ - 继承类中的 shared_from_this() 类型错误(是否有 dyn.type-aware 共享指针?)

我有一个使用enable_shared_from_this的ViewController基类classViewController:publicstd::enable_shared_from_this{//...};和一个child:classGalleryViewController:publicViewController{voidupdateGallery(floatdelta);}问题出现了,当我尝试将我当前的实例传递给第3方时(比如lambda函数被安排在某处)实例(GalleryViewController)会释放一个(罕见的)条件,所以我不能直接捕获“this”,我需要用

c++ - "this"GDB 回溯中的指针变化

我正在检查核心转储,并注意到在一个帧中的“this”指针与下一帧(在同一线程中)不同。不仅仅是一点点不同,它从0x8167428变成了0x200。我不太精通GDB,但这对我来说似乎不对。这是有问题的吗?如果是,原因可能是什么? 最佳答案 如果在不同的对象上调用下一帧中的函数(即使对象是同一类型),则this指针可以在gdb跟踪中的帧之间改变,因为这是为了具体实例。这可能不是您的问题。0x200不是this的有效值,几乎可以肯定表示某种类型的内存损坏。this指针有时存储在堆栈中并作为不可见的第一个参数传递给函数。因此,如果您损坏了堆

c++ - 有没有办法使用 boost::program_options::parse_config_file 在 INI 文件中包含多个 "name=value"行?

我希望能够使用boost::program_options在INI文件中指定多个name=value行。有点像[list.names]name=valuename=value2name=value3有没有办法用boost::program_options实现这个?如果我尝试它,我会得到一个多次出现的错误如果没有,还有哪些其他库可用? 最佳答案 指定字段的值为std::vector在options_description:namespacepo=boost::program_options;po::options_descriptio

c++ - 为什么 `this`等于0x0,导致我的程序崩溃?

我正在设计一个简单的Connect4游戏。到目前为止,我有4个底层类:Colour-负责表示颜色(RGBA)。包括转换运算符。Player-代表游戏玩家。每个Player有一个Colour和一个名字。Board-代表游戏板。它包含维度,以及Tile的二维vector。具有这些尺寸。Tile-Board中的嵌套类.代表板上的一个空间。每个Tile有一个Colour和一个std::unique_ptr给那block瓷砖的主人。所有者以nullptr开头并且可以一次更改为Player.颜色一开始是透明的黑色。我测试了我的Colour类,它似乎工作正常。我的Player类(class)也处于最

c++ - 错误 : ‘Class’ was not declared in this scope

请问,如何在另一个类中定义类。在下面的代码中。我尝试以#define"CCompField.h"的方式定义它,但它不起作用。:(。我认为这是非常常见的编程问题,可能在互联网上已经解决了100000次,但我不知道如何找到它。感谢您的帮助。#ifndefCNEWGAME_H#defineCNEWGAME_HclassCNewGame{public:CNewGame();~CNewGame();voidBeginnerGame();voidIntermediateGame();voidAdviceGame();voidHowToPlay();voidNetGame(intmode);intM

c++ - 在 cpp、OpenCV 中使用 "Select file"对话框创建 GUI

有什么方法可以让用户在我的带有OpenCV的cpp控制台应用程序中使用GUI手动选择文件?我做了一些研究,但到目前为止还没有找到解决这种琐碎任务的方法......提前致谢,日语 最佳答案 为此,您必须添加任何可用的gui库并处理gui部分,将图像处理部分保留在opnecv中。(比如你可以试试Qt) 关于c++-在cpp、OpenCV中使用"Selectfile"对话框创建GUI,我们在StackOverflow上找到一个类似的问题: https://stack

c++ - 浮点相等测试和超精度 : can this code fail?

讨论开始于myanswertoanotherquestion.以下代码确定machineepsilon:floatcompute_eps(){floateps=1.0f;while(1.0f+eps!=1.0f)eps/=2.0f;returneps;}在评论中建议1.0f+eps!=1.0f测试可能会失败,因为C++标准允许使用额外的精度。尽管我知道浮点运算实际上以更高的精度执行(比实际使用的类型指定的精度更高),但我碰巧不同意这个提议。我怀疑在比较操作期间,例如==或!=,操作数没有被截断到它们类型的精度。换句话说,1.0f+eps当然可以比float(例如,longdouble)