В этом примере теоретически да, это может.
Однако, очевидно, что это не так.Таким образом, вы все равно должны писать свой код по-другому.
Чтобы расширить ответ Флориана:
В C ++ с использованием литерала или constexpr
это, очевидно, работает.
Примеркоторый компилируется с g++ -std=c++17 -pedantic -O3 -DNDEBUG -flto -march=native -Wall -Wextra -Werror cpp-switch-test.cpp -o cpp-switch-test
int main(int, char *argv[]) {
constexpr char s[] = "string";
switch (argv[1][0]) {
case *s:
break;
case s[4]:
break;
case "test"[0]:
default:
return 1;
}
return 0;
}