草庐IT

void_type

全部标签

c++ - boost .python : Argument types did not match C++ signature

我在python中调用C++函数时遇到一个奇怪的问题。我公开了一个我想从中调用函数的类:class_>("MyClass",init())//....def("someFunc",&MyClass::someFunc);我得到一个std::shared_ptr来自另一个类的成员变量,该类通过.def_readonly(...)公开当我尝试调用该函数时,出现以下错误:File"pytest.py",line27,intest_funccu.someFunc("string")Boost.Python.ArgumentError:PythonargumenttypesinMyClass.s

C++ 从 ‘const type* const’ 到 ‘type*’ 的无效转换

我有一个非常愚蠢的问题(我认为)。很长时间没有用C++编码,但我无法弄清楚这个问题。我有这个类:#includeclassNode{private:QList_adjacent;public:Node();boolisConnectedTo(Node*n)const;};isConnectedTo()的实现:boolNode::isConnectedTo(Node*n)const{return_adjacent.contains(n)&&n->_adjacent.contains(this);}我在return行中收到以下错误:Node.cpp:Inmemberfunction‘con

c++ - typedef type * type::* ,它是什么?

我有以下代码:structmyType{myType*ptr;};typedefmyType*myType::*other_type;第二行typedef'ining是什么?这是一个返回myType指针或其他东西的成员函数吗? 最佳答案 将other_type定义为指向myType成员的指针,其中所述成员本身是指向myType的指针。例如,您可以这样使用它:other_typex=&myType::ptr;myTypemine;mine.*x=&mine;为什么你会这样做,我不能说。 关

c++ - void* 和 *(void**) 有什么区别?

我正在用C++编写一个aligned_malloc实现,主要使用以下代码,这些代码可以在Interwebs的各个地方找到,包括SO:void*aligned_malloc(size_tsize,intalign){if(align我在aligned_malloc中得到了*(void**)。我对aligned_free中的转换有误解。既然我们只想要值而不必分配给它为什么不使用void*ptr=((void*)((ptrdiff_t)p-sizeof(void*)));代替void*ptr=*((void**)((ptrdiff_t)p-sizeof(void*)));我认为它是一样的,但

c++ - 在 C++ 中正确地将 `void*` 转换为整数

我正在处理一些使用外部库的代码,您可以在其中通过void*值将值传递给回调。不幸的是,之前编写此代码的人决定通过将整数转换为空指针((void*)val)来将整数传递给这些回调。我现在正在努力清理这个烂摊子,我正在尝试确定将整数转换为void*的“正确”方法。不幸的是,修复void指针的使用有点超出了我在这里能够做的返工的范围。现在,我正在执行两次转换以从/转换为void指针:static_cast(reinterpret_cast(void_p))和reinterpret_cast(static_cast(dat_val))由于我在64位机器上,直接转换((int)void_p)会导

c++ - 为什么 unordered_set 操作像计数和删除返回一个 size_type?

显然,unordered_set::erase和unordered_set::count返回一些不是严格bool值的东西(从逻辑上讲,也就是说,我不是在谈论实际类型)。链接页面读取第三个版本的删除:size_typeerase(constkey_type&key);Removestheelementswiththekeyvaluekey这有一种语气,表明可能不止一个元素具有给定的键。它没有明确说明这一点,但听起来很像。现在,集合(即使是无序集合)的要点是每个元素都有一次。标准库承认bool类型的存在并将其用于bool值,如unordered_set::empty().那么,在上述情况下

c++ - 模板元编程 :why flat type is failure

我想将树型展平为平面型。示例:typedefstd::tuple,int>tup;Flat::type=>std::tuple我使用:templatestructFlat{usingtype=T;};templateclassC,typename...ARGS>structFlat>{usingtype=C;};templateclassC,typename...ARGS0,typename...ARGS1,typename...ARGS2>structFlat,ARGS2...>>:Flat>{};voidtest(){typedefstd::tuple,int>tup;static

c++ - void(param); 的意义/用途是什么?在功能开始时?

我刚刚浏览了Yahoo'sTraficServer的源代码它是用C++编写的。在几乎所有方法中(来自模块之一),他们对函数接收的每个参数执行void(param)。(例如下面)谁能解释一下这是干什么用的?intsome_method_name(caddr_taddr,size_tlen,caddr_tend,intflags){(void)end;(void)addr;(void)len;(void)end;(void)flags;..........}附言:有关实际源代码,请参阅方法来自http://github.com/apache/trafficserver/blob/trunk

c++ - 外部关键字 "missing type specifier"

我正在使用VisualC++Express创建一个DLL,并且在声明时externValveInterfaces*VIFace在Required.h中,编译器告诉我ValveInterfaces没有定义。(我想将VIFace暴露给任何文件,包括Required.h)这是我的文件结构:DLLMain.cpp#include"Required.h"//requiredheaderfiles,suchasWindows.handtheSDKValveInterfaces*VIFace;//therestofthefileRequired.h#pragmaonce//includeWindow

c++ - 将 'void' 作为函数参数传递

我有一个函数应该接受任何类型的参数。因此我使用模板。templatevoidFunction(TParameter);函数调用一个函数。在我的真实应用程序中,有一个带有字符串键的回调映射,但这对这个问题无关紧要。回调必须是返回类型为void的函数指针,但可以是任何参数类型。void*Callback;templatevoidFunction(TParameter){(function假设回调是正确的类型,这应该像下面这样工作。Function(42);//shouldresultin...(function但在某些情况下,我想将void作为参数传递。Function(void);//s