(23条消息) 变参基类_最后冰吻free的博客-CSDN博客
Thu Nov 24 2022 06:08:04 GMT+0000 (Coordinated Universal Time)
Saved by
@leawoliu
#include <iostream>
#include <string>
#include <vector>
struct Customer{
Customer(std::string name_):name(name_){}
std::string name;
};
struct CustomerEq{
bool operator() (const Customer& l, const Customer& r) {
return l.name == r.name;
}
};
struct CustomerHash{
size_t operator()(const Customer& c) {
return std::hash<std::string>()(c.name);
}
};
// 使用变成实现多重继承
template<typename... Bases>
struct CustomerOp: Bases... {
// 使用父类的仿函数对象
using Bases::operator()...;
};
void Test(){
CustomerOp<CustomerHash, CustomerEq> cust;
Customer c("ts");
std::cout<<cust(c)<<std::endl;
std::cout<<std::boolalpha<<cust(c, Customer("js"))<<std::endl;
}
int main()
{
Test();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
content_copyCOPY
https://blog.csdn.net/CodeHouse/article/details/126431599
Comments