#include <iostream>
#include <boost/integer_traits.hpp>
using namespace std;
int main( int argc, char* argv[] )
{
// charが32bitとかだったら大変なことになりそう(^^;
int ct[ boost::integer_traits<char>::const_max + 1 ]
= {0};
// argv[0]の中の各文字の出現回数を数えてみる
if( argc > 0 )
for( char* p=argv[0]; *p != '\0'; ++p )
if( *p >= 0 )
++ ct[*p];
for( int i=0; i<sizeof(ct)/sizeof(ct[0]); ++i )
cout << i << ": " << ct[i] << endl;
return 0;
}
標準の std::numeric_limit<>::max
によって、
ある型で使える値の最大値などは得ることができますが、この max
は関数として定義されていて、定数が欲しいところでは利用できません。
そこで、この integer_traits<>
では
std::numeric_limit<>
に加えて、定数として最大値を得られる
const_max
と最小値の const_min
が定義されています。