본문 바로가기

C++ Programming/STL

수치 제한(numeric limits)

수치 타입은 일반적으로 플랫폼에 종속적인 제한값을 가진다. STL는 제한값들을 numeric_limits 템플릿 클래스로 제공
타입의 안정성을 도모하고 프로그래머가 제한값을 작성할 수 있다.

namespace std{
         //int를 위한 수치제한

template <> class numeric_limits<int>{
        public:
            //int의 수치 제한을 위한 전문화가 존재함
             static const bool is_spcialized = true;
             static T min() throw{
                 return -2147483648;
              }
             static T max() throw{
                 return 2147483647;
             }
             static const int digits = 31;

일반적인 numeric_limits템플릿과 표준 전문화는 <limit>헤더파일에서 제공된다.  전문화는 수치값으로 표현될수있는 기본적인 타입을 위해 제공된다.
멤버는 책 p92페이지참고

예제는

cout <<"max(short):" <<numeric_limits<short>::max()<<endl;
cout <<"is_signed(char):"
        <<numeric_limits<char>::is_specialized << endl;

max(short) : 32767
is_signed(char) : false;