Language/C++
C++ 11 :: static_assert KeywordVallistA2015. 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; } |
이제 이걸 우리가 비주얼 스튜디오 상으로 올리면 빨간색으로 경고창이 나올 것 이다.
이렇게 말이다.
'Language > C++' 카테고리의 다른 글
C++ 11 :: Move Semantics (0) | 2015.02.14 |
---|---|
C++ 11 :: R-Value Reference (0) | 2015.02.14 |
C++ 11 :: Lambda Expression (람다 표현식) + 함수 객체 (Functor) (5) | 2015.02.14 |
C++ 11 :: Smart Pointer (Shared_ptr, Unique_ptr, Weak_ptr) (3) | 2015.02.14 |
C++ 11 :: Array (0) | 2015.02.13 |
VallistA
병특이 끝나서 게임에서 웹으로 스위칭한 프로그래머.
프로그래밍 정보등을 공유합니다.
현재는 이 블로그를 운영하지 않습니다.
vallista.kr 로 와주시면 감사하겠습니다!
자고 싶습니다. ㅠㅠ
Github :: 링크
궁금한점 문의 주시면 답변드리도록 하겠습니다
VISITED
Today :
Total :
Lately Post
Lately Comment