ошибка: количество переключателей не целое число

Я изучил свою проблему по всем StackOverflow и ссылкам на несколько Google, но все еще не понимаю. Я решил, что лучше всего спросить ...

Я создаю простой калькулятор командной строки. Вот мой код:

const std::string Calculator::SIN("sin");  
const std::string Calculator::COS("cos");  
const std::string Calculator::TAN("tan");  
const std::string Calculator::LOG( "log" );  
const std::string Calculator::LOG10( "log10" );

void Calculator::set_command( std::string cmd ) {

    for(unsigned i = 0; i < cmd.length(); i++)
    {
    cmd[i] = tolower(cmd[i]);
    }

    command = cmd;
}

bool Calculator::is_legal_command() const {

    switch(command)
    {
    case TAN:
    case SIN:
    case COS:
    case LOG:
    case LOG10:
        return true;
        break;
    default:
        return false;
        break;
    }

}

я получаю следующую ошибку:

Calculator.cpp: In member function 'bool Calculator::is_trig_command() const':  
Calculator.cpp: error: switch quantity not an integer  
Calculator.cpp: error: 'Calculator::TAN' cannot appear in a constant-expression  
Calculator.cpp: error: 'Calculator::SIN' cannot appear in a constant-expression  
Calculator.cpp: error: 'Calculator::COS' cannot appear in a constant-expression  

Могучий Интернет, он говорит, что строки разрешено использовать в операторах switch.

Всем спасибо, я ценю вашу помощь.

10
задан marcog 26 December 2010 в 23:38
поделиться