how could you get the error for that link mentioned? They are two different functions. The error is somewhere when you call the val_in function.
Somewhere you are trying to pass : (token&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int& or: token& , std::string& , int& instead of token &, double
Thinking about it now..If you are saying the error is on that line.. Then the error is probably inside of your strtod function. Can we see the strtod function because you are probably calling val_in wrong in there. didn't realize strtod was older version of atof
Not sure what you were trying to do with the template <typename T> on line 56, but remove that and your code will compile.
However, it probably won't run correctly, since neither val_in nor op_in return any value when they're supposed to return a token.