Declaration function pointer C++ arduino 1.6.11
<p>I am a beginner in C++, but for my arduino I need this code. It is compiling and working for a lower version of arduino, e.g. arduino-1.6.5.r5. From 1.6.9 onwards and even the latest version of arduino (1.6.11) this declaration is not compiling anymore.
I do not understand the error completely. Can it be rewritten in another way? I am using a library CallBack.h.</p>

<p>source of the library:
<a href="https://bitbucket.org/ehsmaes/cmdcallback/wiki/Home" rel="nofollow">https://bitbucket.org/ehsmaes/cmdcallback/wiki/Home</a></p>

<p>Example from library
`</p>

<pre><code>#include &lt;CallBack.h&gt;
// Compile and upload to arduino. Run the serial monitor and type command
// :help;
// Values for initiation of cmd/response interface. 
// After initial boot, id, gid and del are stored in eeprom.
// Change values by command. Make sure each device has a unique id.
String descr="Command/response test program v0.1";
String id="a1";
String gid="a";
int    del=0; //delayed response

// List of commands defined by keyword, funtion pointer, number of arguments 
// and description used in "help" command.
CallBackDef f[] = {
  {(String)"add",   (FunctionPointer)&amp;add,  (int)2, (String)":num1:num2"}
};

// initiate command handler: function array, number of functions and intial values
CallBack cmd(f, sizeof(f) / sizeof(*f), id, gid, descr, del);

void setup() {
  Serial.begin(9600);
  cmd.ok(); // say hello
}

void loop() {
  // Put code here. Use timers instead of delay if possible as not to disrupt
  // command/response interaction with host
}

void serialEvent() {
  // Don't forget this line. Parse command if serial data is available.
  cmd.cmdCheck();
}

//   --------- command initiated callback functions below ---------
// callback functions all need to be defined void and with String argv
// argument list. The command parser will validate the number of input
// parameters but any additional validation has to be perfomed by each
// callback function. As the argument list is passed as strings, type
// casting to other types is the responsibility of the function.


void add(String argv[]) {
  int a = cmd.stoi(argv[0]);
  int b = cmd.stoi(argv[1]);
  cmd.respond(String(a + b));
}
</code></pre>

<p>`</p>

<pre><code>    CmdCallBack_example_minimum:17: error: 'add' was not declared in this scope
   {(String)"add",   (FunctionPointer)&amp;add,  (int)2, (String)":num1:num2"}
                                       ^
Using library CmdCallBack in folder: /Users/adrian/ownCloud/Arduino/libraries/CmdCallBack (legacy)
exit status 1
'add' was not declared in this scope
</code></pre>