(1)
try catch 사용법 (예외처리, exception handling)
https://stackoverflow.com/questions/8480640/how-to-throw-a-c-exception
(2)
생성자의 변수 intialization에서는 거기에 씌여진 순서가 아닌 헤더의 변수 선언 순서에 따라 대입이 이뤄짐. 따라서 initialization에서 앞 순서에 있는 변수의 어떤 값을 뒤 순서의 변수 초기화에 사용하려고 하면 경우에 따라 쓰레기값이 들어갈 수 있으므로 그렇게 사용하지 말 것.
(3)
vector의 implace와 push_back 각각 유용한 상황 정리하기
(4)
constructor(생성자)에서 예외처리 하고싶을때)
생성자에선 return -1 등 종료시그널을 return 할 수 없으므로 throw를 사용하면 된다.
ex.
try {
torch::load(model, "superpoint.pth");
}
catch (const c10::Error& e) {
std::cerr << "error loading the model\n";
throw std::exception();
}
(5) template를 typedef 하고 싶다면?
ex) template <typename T>
의 부속 타입을 따로 이름붙여주고 싶다 -> using Tptr = typename T::Ptr;
하면 함수 선언시에도 void Add(typename T::Ptr A, typename T::Ptr B)
대신 void Add(Tptr A, Tptr B)
이렇게 간단하게 쓸 수 있다!