template<typename T>
static T evaluate_logical(char, T, T);
template<typename T>
static bool evaluate_relation(const char *, T, T);
template<typename T>
static T evaluate_arithmetic(char, T, T);
template<typename T>
static T evaluate_logical(char, T, T);
template<typename T>
static bool evaluate_relation(const char *, T, T);
template<typename T>
static T evaluate_arithmetic(char, T, T);