问题标签 [member-pointers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 奇怪的语法:范围运算符 (::) 后的星号?
帮助我理解以下代码片段:
(foo.h)
(mytype.h)
foo.h 中的 typedef 到底在这里声明了什么?我可以看到它是某种函数指针,但星号的意义是什么?它似乎是在取消引用一个类型 (??) 并以某种方式试图将新的 typedef 指针“附加”到 MyType 的类型 (?!?)。
有人可以在这里阐明一下吗?真的很困惑:S
c++ - 指向数据成员的指针是它的偏移量吗?
我是否可以安全地假设数据成员 ( offsetof(mystruct, myfield)
) 的偏移量在数值上等于使用 检索的成员指针的原始值&mystruct::myfield
,还是依赖于实现?
haskell - Haskell 是否有指向记录成员的指针/引用?
::*
我可以在 C++ 中使用、.*
和->*
语法创建和引用指向结构成员的相对指针,例如:
在 Haskell 中,我可以轻松地为记录获取者创建临时标签,例如:
Afaik,但是我不能使用这些 getter 作为标签来更新记录,例如:
有没有一种简单的方法可以在不为每个记录设置器编码的情况下做到这一点?
c++ - 单个函数指针能否指向多个类的成员函数
以下是我的申请提出的要求。我有一个类 A,它接受一个函数指针说 cFunc,基本上在我的 A 实现中,我让它多次调用 cFunc。
cFunc 指针本身应根据应用程序指向不同的函数。因此,对于每个应用程序,我都创建了一个与 cFunc 具有相同函数定义的类,但是我不能将类的成员函数分配给这个指针
那么,如何使任何具有给定格式的成员函数的类都可以用于初始化类 A?
c++ - 我可以安全地将指向 const 成员的指针转换为相同类型但非 const 吗?
...即使指向成员函数的指针是奇怪的动物?
我正在编写一个库来将 C++ 类绑定到 Lua。我必须处理将某些类型对象推入 Lua 堆栈(并将它们强制转换为 void*)而导致的类型擦除。出于这个原因,也是为了避免针对不同类型的数据(非 const 和 const 对象、非 const 和 const 成员,以及将来将 volatile 和 non volatile 的所有内容加倍......)的不同模板过度增殖,我管理通过简单地设置某个标志,在运行时绑定到 Lua 的对象的常量。
现在,我正在处理指向成员函数的指针。到目前为止,按照我的设计,如果我可以安全地将指向 const 成员函数的指针转换为非常量,然后为非常量重用相同的模板,并在运行时使用上述标志处理常量,我会很高兴。
但还有另一个提示让我怀疑这是否真的可能。考虑下面的代码:
似乎无论这些动物甚至可以改变自己的大小,在某些情况下,您都可以安全地(或至少const_cast
)将它们转换为其他类型(如果它们有意义的话)。
那么,我的推理在其中一个步骤中是否存在严重错误,或者我可以这样做,而不管编译器如何?我可以用指向 const 成员函数的指针以同样的方式玩吗?
c++ - 函子 + 成员指针创建信号对象
我有这个代码:
而且我得到很多我打赌专业人士都知道的编译错误。我只是对这种情况有点困惑。
我想要做的很清楚:传递指向对象的指针,以及指向其中一个成员函数的指针,以创建一个仿函数并将其传递到我的程序中。
感谢您的帮助和“更正”。
谢谢!
c++ - 在 C++11 中是否有在模板中获取成员指针类型?
我知道这在 C++03 中是不可能的,但我希望有一些新的巫毒教可以让我这样做。见下文:
有没有办法在 C++11 中做到这一点?decltype 有帮助吗?
** 更新:使用 Vlad 的示例我在想这样的事情会起作用(警告:我没有编译,因为我现在正在构建具有 decltype 支持的编译器)
这行得通吗?
c++ - 传递指向成员函数的指针
那里有很多例子,但我似乎无法找出解决问题的方法。我有
当StartGetFoos()
被调用时,它完成了获取 Foos 的请求,保存回调。当请求完成时(大约需要 30 秒),将调用保存的回调并返回结果。
我无法更改此方法的签名。
在别的地方我有课
c++ - 类中的 C++ constexpr 成员指针
我正在尝试使用一个类来对模板数据结构的所有参数进行分组,特别是一个侵入式 AVL 树。用户会做这样的事情:
但是MyAvlTreeParams 中的成员指针有问题。此示例演示了它:
这适用于 clang++ 3.1,但 g++ 4.7.2 无法链接错误:
通过在结构 B 的定义之后的某个位置添加以下声明来修复错误(请参阅此问题):
要了解这在我的情况下如何成为问题,每当使用 AVL 树时都需要添加以下所有内容:
如果没有这种信息较少的样板代码,或者有什么不同的方法可以实现分组参数的相同目标(即不仅仅是将所有成员作为模板参数传递),是否有任何方法可以做到这一点?
c++ - 检查基类中派生模板类的相等性
这是我在这个平台上的第一个问题。如果有不清楚的地方或者我没有以适当的方式提问,我很抱歉。
下面的代码应该使用任何 C++11 编译器编译。我试图将其减少到最低限度。在此过程中,这段代码的意义可能会丢失,但应该仍然清楚的是,我正在尝试保留一个类列表和相应的成员函数,以便使用相同的参数调用它们:
这很完美。我的问题是我不知道如何从列表中删除类和成员函数。此外,我不希望同一个类和成员函数被调用两次,这实际上是同一个问题。我需要检查两类 Base 是否相等。我可以提供一个虚函数,它给了我一个 void 指针。
但这只会检查班级的平等性。我不知道如何检查此类的函数指针是否相等以及如何
必须看起来像。
有人知道问题的解决方案吗?或者这个检查是不可能的?
乔