草庐IT

this_file

全部标签

c++ - 在 R 中使用 C++ 编译错误 : "RcppArmadillo.h: No such file or directory"

$exportPKG_CPPFLAGS=`Rscript-e'Rcpp:::CxxFlags()'`$exportPKG_LIBS=`Rscript-e'Rcpp:::LdFlags()'`$RCMDSHLIBmy.cppg++-I/usr/share/R/include-DNDEBUG-I/usr/local/lib/R/site-library/Rcpp/include-fpic-g-O2-fstack-protector--param=ssp-buffer-size=4-Wformat-Wformat-security-Werror=format-security-D_FORTI

c++ - 即使在 std::shared_ptr 拥有之后,shared_from_this 还是空的 _M_weak_this

我在A中存储了一个类(我们称它为std::vector)使用C++智能指针(因此vector签名为std::vector>)。#include#include#includeclassA:std::enable_shared_from_this{public:voiddoWork();std::shared_ptrgetSharedRef();};voidA::doWork(){std::coutA::getSharedRef(){returnshared_from_this();}classAManager{staticstd::vector>aList;public:staticv

Visual Studio 2022: fatal error C1083: 无法打开包括文件: “crtdbg.h”: No such file or directory

1、报错内容fatal errorC1083:无法打开包括文件:“crtdbg.h”:Nosuchfileordirectory出现这个的主要原因是安装WindowsSDK时版本出错,需要根据自己的windows版本选择安装对应版本的WindowsSDKVS2022包括的版本如下:Windows版本WindowsSDK版本Windows10版本1903Windows10SDK版本1903(10.0.18362.1)Windows10版本2004Windows10SDK版本2004(10.0.19041.0)Windows10版本21H2Windows10SDK版本2104(10.0.20348

c++ - 调用C++成员函数指针: this-pointer gets corrupted

我需要将一些成员函数指针转换为void*指针(因为我需要将它们压入Lua堆栈,但问题与Lua无关)。我使用union来做到这一点。但是,当我将成员函数指针转换为void*并再次返回,然后尝试使用该类的实例调用该指针时,this指针会损坏。奇怪的是,如果我将void*指针转换回C风格的函数指针,并将指向该类的指针作为第一个参数,这个问题就不会发生。这是演示问题的一段代码:#includeusingnamespacestd;classtest{inta;public:voidtellSomething(){coutworks//callwithCstylefunctionpointerin

c++ - "this"指针是否启用了 RTTI?

我试图在对象的继承树中的其中一个类的构造函数中发现对象的派生程度最高的类。我现在已经在这上面花了几个小时,并且不知道我还能怎么做或者为什么它没有意义。这似乎很有道理,但它拒绝工作。我找到了很多关于RTTI的页面,但基本上没有找到。我将在我的测试用例及其输出之后继续解释。来源:#include#include#includeclassA{public:A(std::stringfoo);virtualvoidbar(A*a)=0;};classB:publicA{public:B();virtualvoidbar(A*a);};A::A(std::stringfoo){std::cout

c++ - 在 C++11 中使用不带托管共享指针的 shared_from_this()

假设我有一个类是enable_shared_from_this的子类。这个基类的文档说在调用shared_from_this之前应该有一个拥有这个类的共享指针。使用new分配类并调用shared_from_this来管理对象是否安全? 最佳答案 正如其他用户已经提到的,在不属于shared_ptr的实例上调用shared_from_this将导致未定义的行为(通常是异常,但也有没有保证)。那么,为什么还要一个答案呢?因为我自己做了一次同样的问题并得到了几乎相同的答案,然后我开始为另一个问题而苦苦挣扎,这个问题紧随其后-我如何保证所有

c++ - 在 shared_from_this() 中 boost weak_ptr_cast

我正在使用boost的共享指针,并使用enable_shared_from_this来启用返回指向this的共享指针。代码如下所示:classfoo:publicboost::enable_shared_from_this{boost::shared_ptrget(){returnshared_from_this();}}为什么shared_from_this会抛出weak_ptr_cast异常? 最佳答案 如果您在堆栈上声明了foo,那么就没有其他指向foo的共享指针。例如:voidbar(){foofooby;fooby.get

c++ - boost shared_ptr 和 'this'

我有两个具有父子关系的类(客户&订单目录&文件等)我有typedefboost::shared_ptrParentPtr在父类中创建子类的方法我需要子实例有指向它们父实例的指针。classChild{....ParentPtrm_parent;....}我希望它是一个shared_ptr,这样在存在子项时父项不会消失。我还有其他人持有ParentPtrs给父级(Parents的工厂方法返回一个ParentPtr)问题:如何给child一个ParentPtr尝试(1)。在Parent::ChildFactorychild->m_parent.reset(this);这会导致非常糟糕的事情

c++ - 如何获取具有 FILE* 的文件名?

在我的类中,我有FILE*ascii_file;数据成员,它总是通过类构造函数初始化。如何获得asci_file的完整路径?我不想存储有关文件的更多信息,expectascii_file,并希望它在windows、linux和solaris上工作。 最佳答案 此任务将需要不可移植的代码。在Windows上,您可以使用_fileno将FILE*转换为CRT文件描述符,然后使用_get_osfhandle转换为操作系统句柄.然后就可以得到如图所示的文件名here(使用文件映射)。ObtainingaFileNameFromaFileHa

c++ - 什么时候应该使用this->?

我想知道这个->是否应该同时使用:voidSomeClass::someFunc(intpowder){this->powder=powder;}//andvoidSomeClass::someFunc(boolenabled){this->isEnabled=enabled;}我想知道后者是否是正确的必要条件,或者isEnabled=enabled是否就足够了。谢谢 最佳答案 this->在直接使用成员会产生歧义时需要。这可能发生在模板代码中。考虑一下:#includetemplateclassFoo{public:Foo(){}