336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
예제1)
#include예제2)using namespace std; #pragma pack(1) // 구조체를 1바이트 단위로 정렬해 달라. // 컴파일시에 옵션으로 지정해도 됩니다. struct Pack { char cmd; int data; }; static_assert(sizeof(Pack) == sizeof(char) + sizeof(int), "unexpected padding added!!"); int main() { cout << sizeof(Pack) << endl; // 5 }
#include예제3)#include using namespace std; template void logTime(F f, T arg) { static_assert (is_function ::value, "1st parameter must be function!!"); f(arg); } int main() { int n = 0; logTime(n, n); }
#include#include using namespace std; class Test { int data; public: virtual void foo() {} }; template void safe_memset(T& obj) { static_assert(!is_polymorphic ::value, "error, T has virtual function"); memset(&obj, 0, sizeof(obj)); } int main() { Test t; // class도 memset을 해도 되지만 가상함수가 있으면 가상함수 테이블도 모두 초기화가 되기 때문에 memset을 하면 안된다. //memset(&t, 0, sizeof(t)); safe_memset(t); // t의 모든 멤버를 0으로 초기화 하고 싶다. t.foo(); Test* p = &t; p->foo(); // runtime error }
'ⓟrogramming > C++' 카테고리의 다른 글
임시객체 (1) | 2016.05.11 |
---|---|
rvalue (0) | 2016.05.11 |
부분전문화(partial specialization) template (0) | 2016.05.10 |
Inserting object to C++11 vector without copy constructor (0) | 2015.08.29 |
비쥬얼 스튜디오 단축키 (0) | 2014.10.27 |