Language/C++

C++ 11 :: static_assert Keyword

VallistA2015. 2. 14. 17:47

우리는 프로그램을 만들때 운영체제를 고려하며 제작을 하게 된다. 

윈도우에서는 32비트와 64비트가 있는데 이 둘 모델은 각각 틀려서 유추를하여 코딩을 해줘야한다.

그럴때 유용한게 우리가 알아볼 static_assert 키워드 이다.


1.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
template<int N>
struct MyStruct
{
    static_Assert(N < 10, "MyStruct requires N < 10");
};
 
int main()
{
    const auto MAX_LEVEL = 120;
 
    // 맞으면 패스
    static_assert(MAX_LEVEL <= 130, "Warring - Max Level");
 
    // 만약 틀릴경우 이렇게 런타임으로 나타내줌
    static_assert(MAX_LEVEL <= 100, "Warring - Max Level");
 
    // 운영체제 가려낼떄 용이함
    // 포인터 데이터 타입의 크기는 32비트 머신에서는 4지만, 64비트 머신에서는 8임.
    static_assert(sizeof(void*) == 4, "this code is not supported for 64bit");
 
    // 또한 static_Assert를 클래스 안에 넣을 수도 있음.
    MyStruct<1> m1;
    MyStruct<5> m2;
    MyStruct<9> m3;
    MyStruct<13> m4;
 
 
    return 0;
}  


이제 이걸 우리가 비주얼 스튜디오 상으로 올리면 빨간색으로 경고창이 나올 것 이다.




이렇게 말이다.

댓글

VallistA

병특이 끝나서 게임에서 웹으로 스위칭한 프로그래머.
프로그래밍 정보등을 공유합니다.
현재는 이 블로그를 운영하지 않습니다.
vallista.kr 로 와주시면 감사하겠습니다!

자고 싶습니다. ㅠㅠ

Github      :: 링크

궁금한점 문의 주시면 답변드리도록 하겠습니다

VISITED

Today :

Total :

SNS

  • 페이스북아이콘
  • 카카오톡아이콘
  • 트위터아이콘

Lately Post

Lately Comment