gpt4 book ai didi

c++ - 成员函数类型的偏特化

转载 作者:行者123 更新时间:2023-11-30 02:52:26 27 4
gpt4 key购买 nike

我想将 int __stdcall A::(int, int) 转换为 int __stdcall (A*, int, int)

我的代码是

class A {
public:
int __stdcall B(int, int);
};

template<typename C, typename P1, typename P2>
struct Mem2Normal<int __stdcall C::(P1, P2)> {
typedef int __stdcall (C*, P1, P2) type;
};

Mem2Normal<decltype(A::B)>::type

造成了很多语法错误,如何解决?

最佳答案

对于函数指针,以下工作:

class A {
public:
int __stdcall B(int, int);
};

template<typename>
struct Mem2Normal;

template<typename C, typename P1, typename P2>
struct Mem2Normal<int (__stdcall C::*)(P1, P2)> {
typedef int __stdcall type(C*, P1, P2);
};

int main()
{
Mem2Normal<decltype(&A::B)>::type x;
}

关于c++ - 成员函数类型的偏特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18922256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com