다음 코드는 MSVC2005에 나를 위해 컴파일되지 않습니다 :STL 컨테이너에서 MFC 개체를 사용할 수 있습니까?
std::vector<CMenu> vec(10);
CMenu
(예 : 상황에 맞는 메뉴 등) MFC 메뉴 객체입니다. 일부 테스트를 통해 CMenu
에는 공용 복사본 생성자가 없다는 것을 알게되었습니다.
내가하고 싶은 일을하려면 동적 배열을 사용해야했습니다.
물론 이제는 STL 컨테이너를 사용할 때의 모든 이점을 잃어 버렸습니다.
다른 옵션이 있습니까?
더 똑똑한 디자인은'shared_ptr <>'과 비슷하게 구현했을 것입니다. 복사본을 만들면 동일한 메뉴를 참조하며 해당 소멸자는 마지막 소멸자에서 삭제되어야합니다. gf의 anwer는 대신 shared_ptr에 CMenu를 래핑하여 동일한 결과를 얻습니다. – MSalters
아무도 MFC의 디자인이 똑똑하다고 주장하지 않았습니다. Microsoft와 함께하고 싶습니까? 그렇지 않아도됩니까? –