Я просматривал некоторый код в ядре linux, и я натолкнулся на выражения типа case '0' ... '9':
Чтобы попробовать это, я создал тестовую программу ниже.
#include <iostream>
int main()
{
const int k = 15;
switch (k)
{
case 0 ... 10:
std::cout << "k is less than 10" << std::endl;
break;
case 11 ... 100:
std::cout << "k is between 11 and 100" << std::endl;
break;
default:
std::cout << "k greater than 100" << std::endl;
break;
}
}
Программа, описанная выше, компилируется, хотя раньше я никогда не сталкивался с elipses в конструкторе case. Является ли это стандартным C и С++ или это расширение GNU для языка?