Post List

2015년 1월 14일 수요일

static_assert

static_assert (Visual Studio 2010부터 사용가능)
Compile Time에 주어진 조건을 비교하여 true면 통과하고, false 일 경우 오류를 발생한다.

문법은 다음과 같다.

static_assert(expression, message);

아래와 같이 간단한 문장으로 x64를 지원하는지 판단하여 오류 처리가 가능하다.

static_assert(sizeof(void *) == 4, "64-bit code generation is not supported.");

만약 예전 버전 지원때문에 class를 지울수는 없지만, 다른 사람에게 사용하지 못하게 할 경우 아래 code와 같이 class 내부에 선언을 해두면 해당 class 사용시 compile 할때 오류를 발생시킨다.

class Widget
{
public:
        Widget() {};
        ~Widget() {};

        static_assert(false, "Don't use class Widget. deprecated. Use WidgetEx instead.");

        // ...
};

참고 :  http://msdn.microsoft.com/en-us/library/Dd293588(v=vs.100).aspx
          C++ 핵심 노트 - 이주한 (한빛미디어)

댓글 없음:

댓글 쓰기