boost::integer_traits

トップページ > 整数と数値型 >

abstract

必要なヘッダ
<boost/integer_traits.hpp>
出来ること
定数として整数型のmax, minを得る
リファレンス
en

sample

#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;
}

etc

標準の std::numeric_limit<>::max によって、 ある型で使える値の最大値などは得ることができますが、この max は関数として定義されていて、定数が欲しいところでは利用できません。 そこで、この integer_traits<> では std::numeric_limit<> に加えて、定数として最大値を得られる const_max と最小値の const_min が定義されています。

presented by k.inaba (kiki .a.t. kmonos.net) under CC0