의 우리가 다음 코드 조각을 가정 해 봅시다 :함수 매개 변수의 내부 순서가 정의되어 있습니까?
void foo(std::unique_ptr<Data> p1, std::unique_ptr<Data> p2){
bar(p1);
bar(p2);
}
int main(){
foo(std::unique_ptr<Data>{new Data}, std::unique_ptr<Data>{new Data});
}
질문은 : 메모리는 항상이 코드를 실행에 해제됩니다 (무슨 일이 있더라도)?
표준은 함수 인수가되는 명령문 순서에 의존 할 수는 없지만 내부 함수 호출/메모리 할당 등은 무엇인지에 대해 말합니다. 여기서도 중요합니까?
던질 수있는 생성자를 갖는 것이 바람직하지 않습니까? – user3853544
@ user3853544'operator new'는 – Caleth
@ user3853544를 던질 수 있습니다. 의존 : 당신이 항상 유효한 상태에있는 객체를 가지고 있고 (구성 및 유효성 검사를하지 않고) 객체를 갖고 싶다면이 객체를 사용할 수 있습니다. – Patryk