// Использование enam
#include <iostream>
// enam - значения присваиваются с нуля; значения последующего увеличивается на 1.
// lg_EN==0, lg_RU==1, lg_KZ==2
enum lang {lg_EN, lg_RU, lg_KZ};
// Можно инициировать константой
// Диапазон значений определяется: n - макс. значение, m - мин. целое.
// Верхняя граница диапозона Rmax == 2**m-1 (два в степени m минус один).
// Тогда Rmax > n
// Нижняя граница Rmin при m >= 0 Rmin == 0. При m<0 Rmin == 2**m + 1
enum bits {BIT_0=1, BIT_1=2, BIT_2=4, BIT_3=8}; // == 15
// Почему не 8? Rmax=2**3-1=8-1=7 ошибка, Rmax=2**4-1=15
int main()
{
	// При преобразовании главное что бы входило в диапозон.
	bits b1=bits(5); // входит в диапозон
	b1=bits(2);
	switch(b1)
	{
	case BIT_0: std::cout<<"bit=1\n";break;
	case BIT_1: std::cout<<"bit=2\n";break;
	case BIT_2: std::cout<<"bit=4\n";break;
	case BIT_3: std::cout<<"bit=8\n";break;
	default: std::cout<<"bit not implimentation\n";
	};

	int i=0;
	std::cin>>i;
	return 0;
}
UNIX-HOST - профессиональный хостинг и регистрация доменов