I am getting the error term does not evaluate to a function taking 1 arguments when trying to call a function pointer.
The function pointer is stored in a struct. The struct is then stored in a map. Definition:
typedef void (CLIOptions::*OptionHandler)(QString);
struct OptionDefinition {
   QString name;
   QString description;
   QString type;
   OptionHandler handler;
};
typedef std::map<QString, OptionDefinition> CLIOptionMap;
I initialise the map like this:
CLIOptionMap optionMap =
{
   {
      QString("set-tcp-host"),
      {
         QString("set-tcph"),
         QString("Set the TCP server host address"),
         QString("string"),
         &CLIOptions::setTcpHost
      }
   },
  // etc...
}
The problem occurs when I try to iterate through the map and call the handler:
for (it = optionMap.begin(); it != optionMap.end(); ++it) {
    QString value = /*snip...*/
    (it->second.handler)(value)
}
What is my problem here?
 
    