草庐IT

non-void

全部标签

c++ - 为什么 void{} 不存在?

我想知道为什么void()是void的纯右值,但void{}不存在...?请参阅以下答案:https://stackoverflow.com/a/37708167/293195例如在上下文中:templateRfoo(){returnR{};} 最佳答案 CWG2351,于6月解决,使void{}合法。 关于c++-为什么void{}不存在?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

c++ - 我可以有一个 ~destructor(void) 吗?

这个问题在这里已经有了答案:Isthereadifferencebetweenfoo(void)andfoo()inC++orC?(4个答案)关闭8年前。查看我的一些旧代码,我发现出于笨拙我定义了一个析构函数:~ResourceManager(void);这不仅可以编译,而且可以按预期工作。我当然把它改成了~ResourceManager();但是我重构的速度太快了吗?第一个版本是否正确且良好的C++风格?编辑由于问题已经结束并且不会有任何机会进行适当的消歧,所以当透视析构函数时,我应该引用标准中的相关引述来回答这个问题12.4析构函数Aspecialdeclaratorsyntaxu

c++ - 使用 void_t 进行成员检测

对于C++14中的成员检测,我使用了基于示例here的代码,但它似乎不起作用。一个完整的例子:#includetemplateusingvoid_t=void;templateclassHasMember_substr:publicstd::false_type{};templateclassHasMember_substr>:publicstd::true_type{};templateclassHasMember_fff:publicstd::false_type{};templateclassHasMember_fff>:publicstd::true_type{};static

成功解决:ValueError Cannot assign non-leaf Tensor to parameter ‘weight‘

成功解决:ValueErrorCannotassignnon-leafTensortoparameter‘weight‘欢迎大家来到安静到无声的《模式识别与人工智能(程序与算法)》,如果对所写内容感兴趣请看模式识别与人工智能(程序与算法)系列讲解-总目录,同时这也可以作为大家学习的参考。欢迎订阅,优惠价只需9.9元,请多多支持!目录成功解决:ValueErrorCannotassignnon-leafTensortoparameter‘weight‘错误问题解决思路推荐专栏错误问题在推理yolo的coco数据集出现了以下错误:ValueError:Cannotassignnon-leafTen

c++ - 什么 (*(void(*)()) shellcode)();方法?

抱歉,如果这听起来微不足道,但有人可以向我解释这是什么吗?(*(void(*)())shellcode)();我认为第二个*将void设置为指针,但是第一个*呢?类型转换?()是为了调用一些函数?源码在这里:/*#Title:Linux/x86chmod('/etc/passwd',0777)-shellcode42bytes#Platform:linux/x86_64#Author:MohammadRezaEspargham#Linkedin:https://ir.linkedin.com/in/rezasp#E-Mail:me[at]reza[dot]es,reza.espargh

c++ - 我可以将函数指针 void* 转换为 std::function 吗?

函数指针void*由dlsym()加载,我可以将它转换为std::function吗?假设lib中的函数声明是intfunc(int);usingFuncType=std::function;FuncTypef=dlsym(libHandle,"func");//canthiswork?FuncTypef=reinterpret_cast(dlsym(libHandle,"func"));//howaboutthis? 最佳答案 不是,函数类型int(int)和类类型std::function是两种不同的类型。每当你使用dlsym,

c++ - const void * 相对于 void * 提供什么值(value)?

在C++中,使用constvoid*作为函数的参数类型是否比void*更有值(value)?由于void*是不透明的,是否存在任何修改风险,除非用户执行reinterpret_cast,在这种情况下他们同样可以执行const_cast在constvoid*上,因此真的可以买任何东西吗?我问是因为我正在为共享指针使用实用程序模板类,它提供了void的专门化以避免void&问题,但没有为constvoid因此我想知道这是否只是一个疏忽,还是永远不需要它? 最佳答案 它提供了与const在其他指针类型上提供的相同的好处:除非您明确放弃co

c++ - void*字面意思是float,怎么投?

所以我在我的C++应用程序中使用这个C库,其中一个函数返回void*。现在我不是纯C语言最敏锐的人,但听说void*可以转换为几乎任何其他*类型。我也知道我希望在这个函数的末尾某处有一个float。所以我将void*转换为float*并取消引用float*,崩溃。该死的!我调试了代码,并在gdb中让它评估(float)voidPtr和low并且看到这个值是我期望和需要的!但是等一下,在编译期间是不可能的。如果我写floatnumber=(float)voidPtr;它不会编译,这是可以理解的。那么现在的问题是,我如何让我的漂浮物脱离这个该死的空洞*?编辑:多亏了H2CO3,这个问题已经

c++ - operator void* () 是什么意思?

我用谷歌搜索,但没有找到明确的答案。示例:classFoo{public:operatorvoid*(){returnptr;}private:void*ptr;};我了解什么是void*operator()。上面的运算符在不同的语法中是同一件事吗?如果不是,那是什么?我如何使用该运算符获取ptr? 最佳答案 不,他们是两个不同的运营商。operatorvoid*函数是一个类型转换函数,而operator()是一个函数调用运算符。当您想将Foo的实例转换为void*时使用第一个,例如Foofoo;void*ptr=foo;//The

c# - C# 中的 void* 是什么?

想要改进此帖子?提供此问题的详细答案,包括引用和对答案正确原因的解释。不够详细的答案可能会被编辑或删除。这个问题在这里已经有了答案:Whatisvoid**inC#?(6个答案)关闭9年前。我正在查看VC++6.00程序的源代码。我需要将此源代码转换为C#,但我无法理解此示例中的(void*)是什么?glTexImage2D(GL_TEXTURE_2D,0,GL_RGBA8,IMAGE_WIDTH,IMAGE_HEIGHT,0,PIXEL_FORMAT,GL_UNSIGNED_BYTE,(void*)imageData);在这段代码中imagedata是一个指针byte*图像数据