Isn't this a little difficult to understand ... You would think a return type is just 'float' ... And can't see two functions in this signature ..

Code:
   // function takes a char and returns a pointer to a function which is taking two
   // floats and returns a float. <opCode> specifies which function to return
   float (*GetPtr1(const char opCode))(float, float)
   {
      if(opCode == '+')  return &Plus;
      if(opCode == '-')  return &Minus;
   }