[C++11] static_assert

static_assert는 컴파일 타임에서 지정한 조건을 만족하지 않을 경우 개발자에게 에러를 제공하는 기능입니다. 한가지 예로 static_assert의 기능을 정리합니다.

#include "stdafx.h"
#include 

using namespace std;

template int func() {
    static_assert(N <= 100, "Less than 100");
    int sum = 0;
    for(int i=1; i<=N; i++) {
        sum += i;
    }

    return sum;
}

int _tmain(int argc, _TCHAR* argv[])
{
    cout << func<10>() << endl;
    cout << func<1000>() << endl;

    return 0;
}

위의 코드에서 7번에 static_assert가 사용되었습니다. 이 static_assert의 첫번째 인자는 조건이고 두번째는 조건이 false일 경우 개발자에게 제공할 Error 메세지입니다. 실제로 18번 코드는 static_assert의 조건을 만족하므로 문제가 없으나 19번 코드는 static_assert의 조건을 만족하지 못하므로 Less than 100이라는 에러 메세지를 개발단계에서 개발자에게 경고를 해주게 됩니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다