type_info 는 타입의 정보를 저장하는 클래스이다. type_info 란 클래스는 typeid라는 연산자를 통하여, 생성되고, 그 참조값이 반환 된다. type_info 에 대한 설명은 일전에 정리하였던 문서(http://ikpil.com/685)를 보자. .. 설명에서 나와 있듯이, 실제로 써서 알 수 있듯이 사용하기 좀 힘든 클래스 이다. 그래서 안드레 알렉산드 레스큐는 좀 더 type_info를 쉽게 사용하고자, 다음의 개념을 정리하였다. 복사 생성자와 기본 생성자가 없어, 컨테이너등에 넣을 수 없으니, 만들어야만 한다. 첫번째에 의해서 포장되었으니, 다른 비교 연산자 등을 재정의해야만 한다. .. 개념을 알았으니, 각자 만들어 보자.( 책에 소스 코드도 역시 .. 선언만 되어 있다. ) 나는..
MC++D 검색 결과
제네릭한 스타일 코드에선 Boolean 값의 상수에 따라 두 자료형 중 하나를 선택해야 할 필요가 있다고 책에 적혀 있다. .. 사실 이런 경우를 겪어 볼 만큼 실력이 있지 않아 이런 경우가 있을까? 란 의구심마저 들지만, 어떤 원리가 있는지만 알아 두자. Boolean 값으로 두 자료형 중 한 자료형을 선택하기 #include template struct Select { typedef T ValueType; }; template struct Select { typedef U ValueType; }; struct TestClass { int a1_; int a2_; int a3_; int a4_; int a5_; }; int main( void ) { std::cout
이번장은 어떤 테크닉인가? 2.4에서 배운것은 "템플릿"을 이용하여 메모리 손해를 최하(1Byte)로 하여 상수를 타입(자료형)으로 바꾸었다. 이번엔 템플릿을 이용하여 "타입을 다른 타입"으로 바꾸는 테크닉이다. template struct Type2Type { typedef T TYPE; }; 손쉽게 만들 수 있다. 그런데 이것을 배우고 나서 이런 생각이 든다. 이걸 어디에 써먹지? 책에선 함수 템플릿의 부분 특수화를 하기 위해서 사용했다. 그러므로 여기에 대해서는 더 이상 언급하지 않겠다. 사실 책에 무척 자세하고 아주 친절하며, 몹시 재미있게 정리되어 있기 때문이다. 나라면, 컴파일 타임 함수 분기에 타입을 이용 한다면 "함수 호출에 따른 복사 생성자 호출 비용을 최소화하기" 위해서 사용 할 것이다..
C++의 공부는 무척 어렵다. 관련 라이브러리가 무엇이 있는지 알아가는데만도 많은 시간이 필요할 뿐 아니라, 언어 자체가 지원하는 코딩 방법도 무척 맣기 때문이다. 그러다가 Template MetaProgramming 을 접하게 되면, 이게 C++ 이야 스크립트 언어야 라는 혼란에 빠지며, 한계에 부딛치게 된다. Template 관련 책부터 봐야겠다 싶어서 다음 3개의 책을 구매 했었는데 1. C++ Template MetaProgramming 2. Modern C++ Design 3. C++ Template 이 중에 1번과, 2번은 정말 상상을 초월할 정도로 어려운 책이다. 한 문구를 몇번이나 반복해서 읽어야지만, 70%는 포기하고, 20%는 아리송하게 넘기고, 9%는 그러겠지 하며, 단 1% 이해만 ..
최근댓글