Reputation: 863
In this question, the accepted answer uses the following syntax:
typedef std::map<std::string, Base*(*)()> map_type;
Can someone explain what the (*) means, I've never seen it before?
Upvotes: 3
Views: 83
Reputation: 43662
It is a function pointer that returns a Base
pointer and takes no arguments, e.g.
struct Base {};
Base* myfun() {
return 0;
}
int main() {
std::map<std::string, Base*(*)()> mymap;
mymap.insert(std::make_pair("hello", myfun));
}
Upvotes: 5