草庐IT

delegating

全部标签

c++ - 在 c++ () 或 {} 中委托(delegate)构造函数

我读过thislinkStroustrup的代码如下:classX{inta;public:X(intx){if(0(s)}{}//...};我的问题是关于这条线的:X()X{42}{}圆括号和大括号有区别吗?如果没有区别,我可以在其他函数调用中使用大括号吗?还是只是在构造函数委托(delegate)中?最后为什么我们应该同时拥有这两种语法?这有点模棱两可。 最佳答案 ()使用valueinitialization如果括号为空,或directinitialization如果非空。{}使用listinitialization,这意味着

c++ - 如何为 QTreeWidget 创建委托(delegate)?

这是我正在尝试做的(所有parent和child都必须在右侧有一个关闭按钮,将来,只有悬停的项目才能显示**关闭**按钮):我的委托(delegate)代码:classCloseButton:publicQItemDelegate{Q_OBJECTpublic:CloseButton(QObject*parent=0):QItemDelegate(parent){};QWidget*createEditor(QWidget*parent,constQStyleOptionViewItem&option,constQModelIndex&index)const{if(index.colu

c++ - 委托(delegate)给默认的移动构造函数

我经常发现自己为具有许多成员变量的类编写乏味的移动构造函数。它们如下所示:A(A&&rhs):a(std::move(rhs.a)),b(std::move(rhs.b)),c(std::move(rhs.c)),d(std::move(rhs.d)){some_extra_work();}也就是说,它们执行与默认移动构造函数相关的所有操作,然后执行一些平凡的额外任务。理想情况下,我会委托(delegate)给默认的移动构造函数,然后执行额外的工作,但是定义我自己的移动构造函数的行为会阻止定义默认实现,这意味着没有什么可以委托(delegate)给。有没有一种很好的方法来绕过这种反模式

c++ - 在 OOP 中,什么是转发,它与委托(delegate)有何不同?

有人能解释一下转发和委托(delegate)之间的区别吗?它们看起来很相似,但我一直无法找到一个好的转发定义,所以我不确定我是否真的理解。 最佳答案 我们先定义两个术语:sender:向另一个对象(接收者)发送消息/任务的对象receiver:从发送者接收消息/任务的对象forwarding和delegation的区别在于forwarding接收者在自己的上下文中进行操作而在委托(delegate)接收方代表发送方行事。这里有一个很好的比喻blogpost:委托(delegate)和转发都非常相似。一个可能有助于区分它们的隐喻是想象

c++ - 构造函数 : difference between defaulting and delegating a parameter

今天,我偶然发现了thesestandarddeclarationsstd::vector构造函数://untilC++14explicitvector(constAllocator&alloc=Allocator());//sinceC++14vector():vector(Allocator()){}explicitvector(constAllocator&alloc);这种变化可以在大多数标准容器中看到。一个稍微不同的例子是std::set://untilC++14explicitset(constCompare&comp=Compare(),constAllocator&al

c# - 将 C# 委托(delegate)的调用约定更改为 CDECL

我在使用DotNet1.1时遇到过这个C#问题问题是这样的。我有一个非托管dll,它有一个带有函数指针(以及其他参数)的函数。当我在C#代码中声明DLLImport时,我传递了一个委托(delegate)。但是C#中的委托(delegate)具有stdcall调用约定,而非托管函数需要cdecl函数指针。因此,我天真的方法导致了崩溃。然后我发现了以下内容:http://www.codeproject.com/KB/cs/cdeclcallback.aspx有人编写了一个出色的库,据我所知,它可以通过MSIL-hacking更改委托(delegate)的调用约定。事情进展顺利,直到...

c++ - Fast Delegate (et al) 背后的想法是否已用于优化 std::function?

已经有C++“委托(delegate)”的提议,其开销低于boost::function:MemberFunctionPointersandtheFastestPossibleC++DelegatesFastC++DelegateTheImpossiblyFastC++Delegates有没有使用这些想法来实现std::function,从而获得比boost::function更好的性能?有没有人比较std::function与boost::function的性能?我想专门了解英特尔64位架构上的GCC编译器和libstdc++,但欢迎提供有关其他编译器(例如Clang)的信息。

node.js - 如何让 npm 运行 <script> 委托(delegate)给子 package.json?

我有2个级别的package.json文件。例子在这里:https://github.com/justin808/react-webpack-rails-tutorial原因是顶层是一个Rails应用程序,我将所有Node工具放在一个名为client的目录下,并带有它自己的package.json文件。顶级package.json文件是Nodebuildpack运行npminstall脚本的便利和Hook。我有一个转发gulp命令的示例。有什么方法可以将顶级package.json中未找到的任何内容普遍转发给子项?顶级package.json.{"name":"react-webpac

java - 自动委托(delegate) java 类的所有方法

假设我有一个包含许多公共(public)方法的类:publicclassMyClass{publicvoidmethod1(){}publicvoidmethod2(){}(...)publicvoidmethodN(){}}现在我想创建一个wrapper类,它将所有方法委托(delegate)给包装的实例(delegate):publicclassWrapperClassextendsMyClass{privatefinalMyClassdelegate;publicWrapperClass(MyClassdelegate){this.delagate=delegate;}publi

java - 在 Eclipse 中快速实现包装(委托(delegate)方法)?

是否有一些模板或其他东西来实现访问被包装成员的iterface方法?例如,假设我有publicclassMyClassimplementsList{privatefinalListcore;...}现在我想实现List通过将调用传递给Wrappedlike@Overridepublicintsize(){returncore.size();}等等。 最佳答案 有。使用Source菜单->GenerateDelegateMethods... 关于java-在Eclipse中快速实现包装(委