Class 带有函数指针的映射列表初始化
Class with list initalization of map with function pointers
我正在尝试编写一个 class,它将接收(数)对 char 数组(和字符串,稍后向下)和函数指针,我计划从中使用想要的功能。我正在使用 中提供的代码的修改版本进行测试,所以我有:
#include <iostream>
#include <map>
#include <initializer_list>
using namespace std;
class Test {
std::map<const char*, void(*)()> m_ints;
public:
Test(std::initializer_list<std::pair<const char*, void(*)()>> init):
m_ints(init)
{}
};
void testfunction(){
cout << "This is a test function"<<endl;
}
int main()
{
Test t = { {"hello", &testfunction} };
return 0;
}
其中,当用 g++ 编译时,returns 一个错误:
error: no matching function for call to ‘std::map < const char*, void (\*)()>::map(std::initializer_list < std::pair < const char*, void (*)()> >&)’
m_ints(init)
^
和一长串 非常 的候选笔记列表。我做错了什么,我可以像这样初始化我的地图,还是应该在 class?
中使用初始化函数
我正在尝试编写一个 class,它将接收(数)对 char 数组(和字符串,稍后向下)和函数指针,我计划从中使用想要的功能。我正在使用
#include <iostream>
#include <map>
#include <initializer_list>
using namespace std;
class Test {
std::map<const char*, void(*)()> m_ints;
public:
Test(std::initializer_list<std::pair<const char*, void(*)()>> init):
m_ints(init)
{}
};
void testfunction(){
cout << "This is a test function"<<endl;
}
int main()
{
Test t = { {"hello", &testfunction} };
return 0;
}
其中,当用 g++ 编译时,returns 一个错误:
error: no matching function for call to ‘std::map < const char*, void (\*)()>::map(std::initializer_list < std::pair < const char*, void (*)()> >&)’
m_ints(init)
^
和一长串 非常 的候选笔记列表。我做错了什么,我可以像这样初始化我的地图,还是应该在 class?
中使用初始化函数