c++ 조각기록

yeonsoo·2022년 5월 2일
0

(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) 이렇게 간단하게 쓸 수 있다!

profile
to be enterprising

0개의 댓글