Recurisve Template에 member function 추가하기 (2)
Recursive template를 활용하여 pack struct 구현 이후 해당 struct에 member function을 구현해보자. 우선적으로 pack의 size를 구현하는 것은 재귀 호출을 통하여 구현이 가능하다. 하지만 generic하게 Pack의 member variable에 적용할 수 있도록...
Capturing struct member pointer
ORM을 구현하기 위해선 struct의 member type, 정확히는 member type의 pointer를 저장할 수 있어야 한다. 아래는 template을 이용하여 struct의 member pointer를 저장하도록 구현한 예제이다. #include <iostream> namespace type { template<class O,...
Recursive template를 이용한 tuple struct 제작
C++에서는 서로 다른 타입의 데이터를 저장하기위해 std::tuple을 제공한다. std::tuple은 그 자체로써 유용하지만 제네릭 프로그래밍을 공부하기에도 중요한 역할을 한다. 실제 std::tuple과 같이 서로 다른 타입의 데이터를 저장하기 위한 구조체를 만들기 위해서는...
noexcept, throw
C++에서는 try-catch 구절을 통해 예외를 처리한다. 함수는 어디서나 예외를 던질 수 있으며, 예외를 처리하지 않으면 terminate()가 호출 되고 SIGABRT가 발생한다. 함수는 C++ 11 이전에 함수 선언 시 발생시킬 예외를 throw-list를...
객체의 유효 범위
객체가 생성이되고 실제 메모리를 할당 받으면 인스턴스라한다. 각 객체, 인스턴스가 유효한 범위에 대해 알아보자. Storage duration 프로그램 내 저장된 모든 객체들은 아래중 하나에 속하게 된다. automatic storage duration: 지역변수로 선언된...