As observed by commenters, this is not standard C++.
I would not use that in my code.
Nevertheless, with GCC's g++ it can work like this:
#include <iostream>
using namespace std;
int main()
{
cout << "Case test" << endl;
for (char c = '0'; c<'z'; c++)
{
switch (c)
{
case 'A'...('G'-1): case ('G'+1)...('L'-1): case ('L'+1)...'Z':
cout << c;
break;
default:
cout << ".";
break;
}
}
}
g++ case.cpp -o case -W -Wall -Wextra -pedantic && ./case
case.cpp: In function ‘int main(int, char**)’:
case.cpp:15:9: warning: range expressions in switch statements are non-standard [-Wpedantic]
case 'A'...('G'-1): case ('G'+1)...('L'-1): case ('L'+1)...'Z':
^~~~
case.cpp:15:29: warning: range expressions in switch statements are non-standard [-Wpedantic]
case 'A'...('G'-1): case ('G'+1)...('L'-1): case ('L'+1)...'Z':
^~~~
case.cpp:15:53: warning: range expressions in switch statements are non-standard [-Wpedantic]
case 'A'...('G'-1): case ('G'+1)...('L'-1): case ('L'+1)...'Z':
^~~~
Case test
.................ABCDEF.HIJK.MNOPQRSTUVWXYZ...............................