草庐IT

A_DYNAMIC_VALUE

全部标签

c++ - Delphi 中 dynamic_cast 的等价物是什么?

在Delphi中,C++的dynamic_cast、reinterpret_cast和static_cast运算符(尤其是在对象上使用时)的等效项是什么? 最佳答案 重新解释_cast大多数时候,在Delphi中,转换是reinterpret_cast,即一种类型的位和字节被重新解释为另一种类型,例如Integer(myEnum)或Pointer(MyDynamicArrayVar)。有些转换会截掉位,即Integer(MyInt64)会截掉Int64的高32位,而低32位的高位会变成新的符号位。一些Actor阵容扩大,例如Inte

c++ - *v8::String::Utf8Value(args[0]->ToString()) 不返回 node.js 插件参数的字符串

我发现*v8::String::Utf8Value(args[0]->ToString())在Node0.8.232位上返回正确的字符串,但在Node0.8上不返回正确的字符串。8个64位。有人知道为什么吗?我的node.js插件看起来像这样:#defineBUILDING_NODE_EXTENSION#include#defineMAX_OUTPUT_BUF80extern"C"char*do_sqlsig(char*in);usingnamespacev8;HandleSqlsig(constArguments&args){HandleScopescope;char*c_arg,*

c++ - unordered_map - {{key,value},{key,value}} 语法无效

我正在尝试编译thecodetakenfromhere//constructingunordered_maps#include#include#includetypedefstd::unordered_mapstringmap;stringmapmerge(stringmapa,stringmapb){stringmaptemp(a);temp.insert(b.begin(),b.end());returntemp;}intmain(){stringmapfirst;//emptystringmapsecond({{"apple","red"},{"lemon","yellow"}}

c++ - 在 dynamic_casting 之后删除指针是否安全?

voidfoo(MyClass*myClass){BaseClass*pBaseClass=dynamic_cast(myClass);deletemyClass;//一般来说,dynamic_cast是如何工作的?(它像复制构造函数一样工作吗?) 最佳答案 不,那是不安全的。dynamic_cast只是一种类型转换——原始指针和转换后的指针都指向同一个对象。转换后的指针可能会指向一个稍微不同的地址(如果涉及多重继承),但它仍然指向(in)同一个对象-不会发生对象复制。编辑:我的意思是“不安全”,意思是“在您删除myClass之后,

c++ - 候选函数不可行 : expects an l-value for 3rd argument

使用递归函数myPowerFunction(intp,intn,int¤tCallNumber)计算P的n次方(p和n均为正整数)。currentCallNumber是一个引用参数,存储到目前为止进行的函数调用次数。myPowerFunction返回p的n次方。intmyPowerFunction(intp,intn,int&z){z++;if(n==1)returnp;elseif(n==0)return1;elseif(n%2==0)returnmyPowerFunction(p,n/2,z)*myPowerFunction(p,n/2,z);elsereturnmyP

c++ - 构造函数内部 "this"的 dynamic_cast

这个问题与这个问题非常相似Whycan'tIdynamic_cast"sideways"duringmultipleinheritence?,除了强制转换确实有效-只是不在构造函数中。标题:classA{public:virtual~A(){}voidprintA();};classB{public:B();virtual~B(){}voidprintB();private:std::stringmessage_;};classC:publicA,publicB{public:C(){}virtual~C(){}};来源:voidA::printA(){cout(this);if(a)

C++:即使被转换的对象不是 NULL,dynamic_cast 也会导致 SEGFAULT。怎么会这样?

假设我有一个类A和一个派生自A的类B。现在,我想使用dynamic_cast(见下文)将constA*(称为“a”)转换为B*。如果“a”真的是B*,那么我得到的对象指针应该没问题。如果“a”不是B*,那么我将得到NULL。constA*a=newB();constB*b=dynamic_cast(a);出于某种原因,dynamic_cast操作会导致SEGFAULT。如果“a”不是NULL,那怎么会发生呢?我想如果有任何转换问题,dynamic_cast会给我一个NULL指针,而不是SEGFAULT。如果我试图访问“b”并且动态转换不成功,我应该只得到一个SEGFAULT,对吗?我什

c++ - 为什么这个 auto_ptr 的 dynamic_cast 会失败?

#include"iostream"classA{private:inta;public:A():a(-1){}intgetA(){returna;}};classA;classB:publicA{private:intb;public:B():b(-1){}intgetB(){returnb;}};intmain(){std::auto_ptra=newA();std::auto_ptrb=dynamic_cast>(a);return0;}错误:不能dynamic_cast`(&a)->std::auto_ptr::get()const 最佳答案

c++ - 累加map中元素的总和,使用value

假设我有一个structSMyStruct{intMULT;intVAL;};std::map_idToMyStructMap;现在我想计算所有SMyStuct的总数,其中对于idToMyStructMap中的每个元素,总数定义为MULT1*VAL1+MULT2*VAL2。似乎accumulate函数是一个自然的选择。请建议。谢谢请不要提升....只是一个“ldfashionSTL” 最佳答案 typedefstd::mapstring_to_struct_t;intadd_to_totals(inttotal,conststrin

INFOBATCH: LOSSLESS TRAINING SPEED UP BY UNBIASED DYNAMIC DATA PRUNING 和Masked Image denoised

文章目录INFOBATCH:LOSSLESSTRAININGSPEEDUPBYUNBIASEDDYNAMICDATAPRUNING1.概述2.原理3.实验结果4.三行代码MaskedImageTrainingforGeneralizableDeepImageDenoising1.概述2.原理INFOBATCH:LOSSLESSTRAININGSPEEDUPBYUNBIASEDDYNAMICDATAPRUNING即插即用的动态数据裁剪,加速网络训练.ICLR2024Oral|InfoBatch,三行代码,无损加速,即插即用!论文题目:InfoBatch:LosslessTrainingSpeed