c++ - R(C::*)(P1,P2) 是什么意思?

标签 c++ templates

我看到了这个模板声明:

template<typename C, typename R, typename P1, typename P2> struct mystruct<R(C::*)(P1,P2)> { ... };

我知道 C::* 的意思是“指向 C 成员的指针”,但我不明白 R(C::*)(P1,P2) 的作用

最佳答案

R(C::*)(P1,P2)

指向类 C 的成员函数的指针,接受类型 P1 和 P2 的参数,返回 R。

该行作为一个整体是一个类模板特化(至少必须在某处存在 mystruct 的主模板声明)。

关于c++ - R(C::*)(P1,P2) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14978426/

相关文章:

C++ 模板 type_trait enable_if 类是映射

c++ - 错误 : no match for ‘operator==’ in ‘boiler::uniqueInstance == 0l’

c++ - 仅专门化模板类的一个方法(的一部分)

c++ - 具有显式类型名称的函数模板

c++ - 如何根据模板类型的祖先限制类的实例化

c++ - 基于不同枚举值的类成员重载(或特化)

c++ - 在常数时间内初始化 C++ 数组

c++ - 删除编译器警告的危险方法?

c++ - c++和g++如何处理unicode?

c++ - 运算符重载和指向对象的指针,c++