【C++】 const だけでメシが3杯食えちゃうスレ
■ このスレッドは過去ログ倉庫に格納されています
0430デフォルトの名無しさん
NGNGtemplate<int N>struct NI;
template<>struct NI<1>{ typedef unsigned char type; };
template<>struct NI<2>{ typedef unsigned short type; };
template<>struct NI<4>{ typedef unsigned int type; };
template<int MIN,int MAX>
class RangeInt{
typename NI<((MAX-MIN)>255) ? ((MAX-MIN)>65535) ? 4 : 2 : 1>::type value;
public:
RangeInt(int val=MIN){
if(val<MIN || val>MAX)
throw;
value=val-MIN;
}
operator int() const{ return value+MIN; }
};
RangeInt<5,10> ri=7; //5〜7までの整数型
■ このスレッドは過去ログ倉庫に格納されています