我正在制作一些回调系统,我想知道我是否可以保留函数引用,unordered_map
以便以后可以调用它。
float func_imp(float x)
{
return x;
}
int main()
{
using Tumap = unordered_map<int, float(&)(float)>;
Tumap umap;
umap.emplace(0, func_imp);
(umap[0])(10.1); //a reference type cannot be value-initialized
using Tvec = vector<float(&)(float)>;
Tvec uvec; // pointer to reference is illegal
//uvec.emplace_back(func_imp);
}
是否可以使用这种类型的容器来保留回调函数?如果不是,它是使用函数指针的唯一方法吗?