оператор switch

 
Оператор-переключатель switch
switch (выражение)
{
case константа: операторы
case константа: операторы
...
default: операторы
}

может ли (выражение) содержать функции?
К примеру можно ли пользоваться конструкцией: switch (OrderType()) {...
 
да, выражение может содержать функцию
 
switch ( Symbol() ) {
case "EURUSD" : operators;
}



Компилятор пишет
'switch' - different types in switch statement

Что бы это значило? Он на строки ругается?
Build .151

 
это значит, что в операторе switch допустимы только числовые значения. ругается именно на строки.
 
Достаточно странно, обычная вроде бы ситуация... это сделано специально? Может, стоит это поправить?
 
Достаточно странно, обычная вроде бы ситуация... это сделано специально? Может, стоит это поправить?

Это язык С и его стандарты.
Причина обращения: