问题标签 [pointer-to-member]
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++ - 从指向成员的指针的类模板推导
作为类模板参数之一,我需要使用指向成员的指针:
这需要用作
但我想这样使用它:
成员类型是从成员指针推导出来的。我不能使用函数模板,因为MemPtrTest
该类不应该被实例化(只会使用一些静态函数)。有没有办法在纯 C++03(没有 Boost 或 TR1)中做到这一点?
c++ - 无法推断出模板参数和指向成员的指针
我在使用 Visual C++ 时遇到 C2783 错误(无法推断模板参数),我有以下测试用例:
注释行时
并取消注释下面的行,代码编译。
我不明白为什么,因为对我来说 'helper::add' 的第二个参数仍然是一样的......
感谢帮助。
c++ - 使用成员函数作为模板参数时的c ++编译错误
我正在尝试将成员函数指针作为模板参数传递。这是代码:
这是我得到的错误:
据我所知,指向成员函数的指针是有效的模板参数。我不明白前面的代码有什么问题。我使用的编译器是 Ubuntu 下的 g++ 4.5.2。
提前致谢。
更新:
似乎代码应该是错误的,因为mptr
它是运行时变量。另一方面,前面的代码摘录编译:
所以……对吗?它取决于编译器吗?
c++ - 访问类内的函数指针
我在类中定义函数指针并尝试通过类的实例访问它,但它显示错误。
这是代码:
它显示编译时错误:
请帮我。
先感谢您。
c++ - 动态创建调用给定实例上的方法的函数指针
我怀疑这是不可能的,但我想我会问。假设我有一个带有方法的类:
我可以创建一个指向该成员函数的指针:
我还可以滥用函数指针并创建一个A
直接接受参数的指针(我不知道这是否安全,但它适用于我的机器):
我想要的是以某种方式对参数进行curry A
,并创建一个函数指针,它只接受一个,但在我预定义的特定实例上int
调用该方法。对于那个特定的函数指针,实例将保持不变,但可能有几个函数指针都指向同一个方法,但使用不同的实例。例如,我可以制作一个单独的包装函数:A::b
A
A
A::b
A
现在我可以ptr3
在不知道A
将调用发送到哪个特定对象的情况下使用它,但我必须定义一个特殊的函数来处理它。我需要一种方法来为任意数量的A
实例创建指针,所以我不能像那样对其进行硬编码。这有可能吗?
编辑:应该提到,我被困在 C++03 领域,也不能使用 Boost
c++ - 专门针对指向数据成员的指针的模板成员函数
我想定义一个空值静态模板成员函数,该函数将(明确)专门用于指向数据成员的指针,并且对于每个专门化,可以具有不同的返回类型。
它应该返回有关每个属性的一些详细信息,因此我将调用此方法trait
。返回的特征对象类型将被其他模板检查,因此整个机器必须在编译时可用。
到目前为止,我有这样的东西(当然是坏代码):
可以得到一些关于如何实现这一目标的提示吗?(我并不是想发明一个新的序列化系统,我已经使用了 boost::serialization;每个特征中都会有更多信息,这只是一个示例,为什么在编译时需要它)。
编辑:我能够得到接近我想要的东西,它显示在 ideone.com 上。我放弃了trait<Foo::a>()
(现在),所以有一个静态函数getTrait_a()
返回对可修改类型特征的引用,但是在编译时部分固定(Foo::TraitType_a::flags
例如,这样可以工作)。感谢所有回答的人,不幸的是我只能选择其中一个答案作为“答案”。
c++ - 模板类、继承和指向成员函数的指针的编译器错误
他们有什么方法可以克服这个错误。我想通过填充函数并避免重复代码的代码气味。
c++ - 如何在 C++ 中打印成员函数地址
看起来std::cout
无法打印成员函数的地址,例如:
结果是这样的:
如何MyFunc
使用 打印地址std::cout
?
c++ - 指向成员的指针作为模板参数推导
我想将指向成员的指针作为 foo1 的模板参数。这是代码:
那么它应该是什么样子呢?
c# - 将指向成员的 C++ 指针转换为 C#
我一直在研究如何成功地将 C++ 指向成员的指针转换为 C#,但我还没有发现任何有用的东西。假设我有这个功能。
我通过研究了解到 ->* 是指向成员的指针。在这种情况下,我们在一个名为 STRUCT 的结构中发送一个成员变量的指针。由于 Method 不确定哪个成员作为参数发送,它通过指向成员的指针 sampleStruct->*pMember 访问它。
我认为Reflection可以帮助将此代码转换为C#,或者可能是Delegates,但我真的不知道如何实现它,我还没有在网上找到任何类似的例子。任何帮助将不胜感激。
谢谢,YT
更新
这就是我在 C# 中实现它的方式。
我没有创建结构,而是创建了一个枚举和一个类来表示 C++ 结构,如下所示:
C++ 结构
现在,在 C# 中:
}
现在,我可以通过调用特定的枚举来访问数组的元素,如下所示:
它的代码更多,但它在 C# 中本机工作,并且比其他解决方案更有效。