草庐IT

Calling-Steps-from-Step-Definitio

全部标签

c++ - 构造函数中的 weak_from_this()

我知道您不能在构造函数中使用shared_from_this。但是可以在构造函数中使用新的weak_from_this吗?根据cppreference:Thisisacopyofthetheprivatemutableweak_ptrmemberthatispartofenable_shared_from_this.http://en.cppreference.com/w/cpp/memory/enable_shared_from_this/weak_from_this我没有看到从构造函数中获取内部存储的weak_ptr拷贝的问题,但我可能遗漏了一些东西,所以我不确定这一点。

C++ libclang : Retrieving cursor from CXSourceLocation returning wrong cursor?

我目前正在使用libclang和C++编写一个简单的克隆检测器。程序使用结构存储游标,包含指向翻译单元的指针和通过调用clang_getCursorLocation(cursor)获得的CXSourceLocation。typedefstruct{CXTranslationUnit*tu;CXSourceLocationsrcLoc;}t_cursorLocation;为了这个错误,子访问者函数访问每个节点并从每个游标创建一个结构。使用t_cursorLocation类型的结构,我编写了这个函数来检索相应的光标:CXCursorgetCursor(t_cursorLocation*lo

c++ - CUDA 推力 : copy from device to device

我使用标准CUDAmalloc在CUDA中分配了一个内存数组,并将其传递给函数,如下所示:voidMyClass::run(uchar4*input_data)我还有一个类成员,它是一个推力device_ptr声明为:thrust::device_ptrdata=thrust::device_malloc这里的num_pts是数组中值的个数,input_data指针保证是num_pts长。现在,我想将输入数组复制到thrust_device_ptr中。我看过推力文档,其中很多都在谈论从设备复制到主机内存,反之亦然。我想知道在推力上执行此设备到设备复制的最佳性能最佳方式是什么,还是我应该

java - JNI : Invoke JAVA method from C++, 返回对象、引用和 GC

当C++程序(!)调用返回对象的java方法时,规则是什么?是否有对该对象的突出引用?我必须调用“DeleteLocalRef”来确保该对象是GCd,还是会自动成为GCd?我不清楚的原因是,在所有示例和官方文档中,声明“DeleteLocalRef”不是必需的,只有当从java调用native“C/C++”方法时,它对我才有意义。但是如果调用线程是调用java的C++方法,JVM怎么知道这个对象可以GCd呢?同理:如果我想缓存对象,我必须调用“NewGlobalRef”吗?找不到对此的任何引用...感谢任何引用和/或澄清 最佳答案

c++ - C4244 : '+=' : conversion from 'std::streamsize' to 'size_t' , 可能丢失数据

我已将我的VC++项目从VS2008迁移到VS2013并收到一些警告,例如:C4244:'+=':conversionfrom'std::streamsize'to'size_t',possiblelossofdata.如何解决这些类型的警告? 最佳答案 在MSVC2013中std::streamsize是:typedef_Longlongstreamsize;typedef_LONGLONG_Longlong;#define_LONGLONG__int64size_t是:typedefunsigned__int64size_t;因

c++ - JNI : How to convert a group of data from c++ to Java

我正在尝试使用JNI将一些数据从C++发送到Java。在C++中我有:Array[0]:stringname="myName"intiterations=16floatvalue=15...etc所以我想使用JNI返回Java上的所有数据,我正在尝试这个,但不起作用JNIEXPORTjobjectArrayJNICALLJava_com_testing_data_MainActivity_getDATA(JNIEnv*env,jobjectobj){//1ºCreateatempobjectjobjectdataClass{jstringname;jintiterations;jflo

C++ : generate all subsets from set with one condition

我正在尝试编写代码,通过一个条件从集合中生成所有子集,例如如果我有threshold=2,并且设置了三个:1,2,3,4,51,3,51,3,4然后程序会输出:第一次迭代时的生成集:1=numberoffrequency=32=numberoffrequency=13=numberoffrequency=34=numberoffrequency=25=numberoffrequency=2由于数字2第二次迭代时的生成集:1,3=numberoffrequency=31,4=numberoffrequency=21,5=numberoffrequency=23,4=numberoffre

C++ 正确处理 sqlite3_prepare 和 sqlite3_step 错误的方法

我有一个使用C++和Sqlite3构建的函数,我将在其中发出一个简单的SQL语句。此函数需要没有返回值的DML命令(例如:INSERTINTO、UPDATE或CREATE类型的语句)。我想知道我是否处理纠正了sqlite3调用中可能出现的错误。这是我使用的代码:voidexecStatement(sqlite*dbHandler,std::stringsql){sqlite3_stmt*compiledStatement;intretStatus=sqlite3_prepare(dbHandler,sql.c_str(),-1,&compiledStatement,0);if(retS

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++ 销毁顺序 : Calling a field destructor before the class destructor

有没有办法在类析构函数之前调用字段析构函数?假设我有2个类Small和Big,Big包含一个Small的实例作为它的字段因此:classSmall{public:~Small(){std::cout当然,这会在小析构函数之前调用大析构函数:BigdestructorSmalldestructor我需要在Big析构函数之前调用Small析构函数,因为它会为Big析构函数执行一些必要的清理工作。我可以:显式调用small.~Small()析构函数。->但是,这会调用Small析构函数两次:一次显式调用,一次在Big析构函数执行后调用。有一个Small*作为字段并在Big析构函数中调用del