벡터에 담을 땐 대충 이런식으로 담았구
push_back(new 거시기))
이걸 반환하는 함수를 만들어서
이걸 호출하는 쪽에선 auto vec = 함수();
이렇게 호출하려했는데 에러가 나서 안되더라구...
소유권 문제 같은데 잘 모르겟다... 힝힝8ㅅ8
아니 제목에 꺽쇠가 안들어가네 디시 수준
push_back(new 거시기))
이걸 반환하는 함수를 만들어서
이걸 호출하는 쪽에선 auto vec = 함수();
이렇게 호출하려했는데 에러가 나서 안되더라구...
소유권 문제 같은데 잘 모르겟다... 힝힝8ㅅ8
아니 제목에 꺽쇠가 안들어가네 디시 수준
맙소사.... 동적할당 벡터라니... 너무 끔찍해
그거 반환할 때 return std::move(vector) 로 하고, auto&& vec = func() 로 하셈
오 감사감사ㅋㅋ 집가면 해볼겡
그리고 그거 동적할당할 필요 없이 .emplace_back(constructor()) 로 해도 되고 (emplace back 은 푸쉬랑 똑같은데 생성자에 대해서 최적화 됐던가 그럴꺼고) .emplace_back(std::move(constructor()) 하는 방법도 있는데 둘 중에 어느게 더 빠를지는 측정해봐야 알겠다
커헠//푸쉬->푸시 (sh는 시로 표기함. 스킨십 멤버십 플래그십 플래시 등등...) [리듬 맞춤법 봇♬]
원래 그냥 넣었는데 오류나서 땜빵으로 동적할당했었음ㅜㅜ 건드리기 시르다
동적할당 하면 해제도 해줘야되잖아 근데 오류 내용이 뭐였음?
unique_ptr 로 힙할당을 하면 몰라도
동적할당 없이 그냥 생성자 넣었을 때 오류 말하는 거면.. 한달 전 일이라 기억이 잘 안남. 집가면 확인해봐야지
그거 말고 대입연산자 쓸 때 오류 난다면서 그건 뭐임
그냥 동적할당해서 한건 당연히 오류 안나고, QScopedPointer(큐티버전 unique_ptrㅎ)로 포인터 받아서 그걸 반환해서 받으려고 하니까 오류가 나서... 실험삼아서 QSharedPointer로 할 땐 안났음. 정확한 오류 내용은 지하철 내리고 확인해봐야
아 unique_ptr은 std::move로 반환안해주면 당연히 오류남. 자세히 알고 싶으면 따로 글 써드림
그럼 unique_ptr을 담고 있는 벡터도 무조건 move로 옮겨야 되는 건가? 글써주셈!
씀