草庐IT

delegating-constructor

全部标签

c++ - std::thread constructor 传递指针和传递ref有区别吗?

创建调用成员函数的线程时,传递当前类的指针和传递引用有区别吗?从下面的示例中,方法1的行为是否与方法2相同?有什么区别吗?classMyClass{public:MyClass(){};~MyClass(){};voidmemberFunction1(){//method1std::threadtheThread(&MyClass::memberFunction2,this,argumentToMemberFunction2)//method2std::threadtheThread(&MyClass::memberFunction2,std::ref(*this),argumentT

c++ - Visual Studio 2015 中的 "default constructor cannot be referenced"

我在VisualStudio2015中遇到了一条非常奇怪的错误消息。以下精简代码:structA{A(intval=0):x(val){}intx=0;};structB:A{staticinty;};intB::y=1;structC:B{};intmain(){Cc;return0;}在Clang上编译没有任何问题。但是VisualStudio2015IntelliSense给出了以下错误消息:thedefaultconstructorof"C"cannotbereferenced--itisadeletedfunction我的代码中是否遗漏了什么,或者这是VisualStudio

c++ - Noexcept 对派生类构造函数的 promise : can that be used without promising noexcept on base constructor?

假设我有一个类classC:publicB{public:C()noexcept;}noexcept说明符是否需要基类的相同promise?也就是说,当我考虑使用noexcept时,我是只看C::C()的行为还是我还需要考虑B::B()是否可能抛出异常?例如,如果B::B抛出异常,它会传播到C::C还是传播到请求新类实例的代码?--如果传播到C::C,如果基类不是noexceptforconstructor,那将是避免noexceptforconstructor的原因之一。 最佳答案 技术上†不要求将基类构造函数声明为noexcep

gcc 4.8.1 : list-initialization for copy constructor doesn't work 中的 C++11

我鼓励这个问题:如果我有classA{public:};intmain(){Aa{};Ab{a};}gcc给出:moves.cc:Infunction‘intmain()’:moves.cc:15:7:error:toomanyinitializersfor‘A’Ab{a};但是当我使用Ab(a)而不是Ab{a}时,所有编译都正确。如果我声明默认构造函数,它也会编译。为什么会这样? 最佳答案 该类是一个聚合,因此列表初始化将执行聚合初始化,并且不会考虑隐式声明的构造函数。因为没有数据成员,所以只有空列表可以是有效的聚合初始化器。Bu

c++ - 我怎么说 "noexcept if execution of protected base constructor is noexcept"?

我们遇到过这种情况,想知道解决它的最佳方法templatestructA:T{A(T&&t)noexcept(noexcept(T(std::move(t)))):T(std::move(t)){}};不幸的是编译失败,因为T的移动构造函数是protected,我们只能在*this的构造函数初始化列表中调用它。使这项工作有什么变通办法,或者甚至有标准的方法吗? 最佳答案 您正在寻找noexcept(std::is_nothrow_move_constructible::value):http://en.cppreference.co

c++ - C++11 中的委托(delegate)

C++11是否提供委托(delegate)?如果不是,那么在C++中执行类似操作的最佳(最有效)方法是什么?升压信号?快速委托(delegate)?还有别的吗? 最佳答案 您可以使用bind将成员函数绑定(bind)到类实例,从而获得类似委托(delegate)的语义:#includestructC{voidFoo(int){}};voidBar(std::functionfunc){func(42);//callsobj.Foo(42)}intmain(){usingnamespacestd::placeholders;Cobj;

c++ - :className() mean in a constructor for className? 是什么

我在我正在处理的代码库中看到一些代码如下:ZfooName::ZfooName(intmagoo):ZfooName(){fGoo=magoo;}我假设这是一个C++11功能,因为它在VS2012中中断,但这是什么意思? 最佳答案 这是C++11中的新特性。它称为委托(delegate)构造函数。构造函数首先调用默认构造函数(被委托(delegate)给的构造函数)。默认构造函数返回后,执行委托(delegate)构造函数的主体。参见http://www.stroustrup.com/C++11FAQ.html#delegating

OpenCV实现手势音量控制 报错日志 INFO: Created TensorFlow Lite XNNPACK delegate for CPU.

项目场景:OpenCV实现手势音量控制:使用OpenCV和mediapipe库进行手势识别,并利用手势距离控制电脑音量。原文:OpenCV实现手势音量控制问题描述今天在网上看到这个博主利用OpenCV实现手势音量控制,于是我试了一下这个代码,安装库后发现还没办法顺利运行。显示INFO:CreatedTensorFlowLiteXNNPACKdelegateforCPU.原因分析:我在csdn,GitHub,知乎等上找了很久,没有找到好的解决方案,于是我问了一下chatgpt。它告诉我们这是一个日志信息,我意识到这可能不是报错,不是代码无法顺利运行的原因。接着我翻了一下评论区,发现有人把第134

设计模式-代理模式(delegate)

什么是代理?代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决.这就是代理思想在现实中的一个例子java中的代理类型静态代理代理对象和目标对象(委托

node.js - CALL_NON_FUNCTION_AS_CONSTRUCTOR( native )

我正尝试在我的数据库中使用新模式,但在尝试实例化它时出现错误。我有另外两个模式(在“模型”文件夹中的两个不同模型文件中),它们工作完美,并且它们的形状相同。错误消息是什么意思,我可以做些什么来防止它发生?我认为Controller中的其他代码没有任何问题,因为我尝试使用相同的语法在同一位置实例化另一个数据库模型,并且效果很好。我得到的错误:500TypeError:objectisnotafunction在Schema.CALL_NON_FUNCTION_AS_CONSTRUCTOR(本地)抱歉下面的所有代码。我不知道在这种情况下我可以排除什么。无论如何,提前致谢!Controller