C++16 [Effective C++] 변수의 정의는 최대한 늦추자 생성자, 소멸자를 호출하는 타입의 변수를 선언하는 경우 두 가지 비용이 발생한다. 1. 처음 정의 시 변수가 호출하는 생성자 비용 2. 변수가 유효범위를 벗어날 때 호출되는 소멸자 이런 비용을 최대한 피하기 위해서는 정말 꼭 필요할 위치에서 변수를 호출해 줘야 하며, 그 차이는 아래 코드를 보면 알 수 있다. // error로 인해 사용하지 않더라도 msg 가 생성된다. std::string ErrorMsgGenerator( std::string code ) { std::string msg; if ( code < 1 ) throw error( "invalid code" ); return msg; } // string 생성을 최대한 늦게 한다. std::string ErrorMsgGenerator( std.. 2021. 6. 1. 이전 1 2 다음