我檢查了一些使用原始指針的舊代碼,並將其更改爲unique_ptr
。現在,當我嘗試編譯的代碼,我得到這個錯誤信息:錯誤C2280:嘗試引用已刪除的函數(unique_ptr)
錯誤1錯誤C2280:「的std ::的unique_ptr> ::的unique_ptr(常量的std ::的unique_ptr < _Ty,性病:: default_delete < _Ty >> &)」:試圖引用刪除的功能d:\的Visual Studio 2013 \ VC \包括\ xmemory0
有關情況編譯器的輸出是巨大的 - 節省空間在這個問題上,看到它here 。
據我所知,這與我使用獨特指針的方式有關。它從這裏開始(level.h,行65-66):
typedef std::unique_ptr<Enemy> PEnemy;
std::list<PEnemy> m_enemies;
現在,下一個線索我在編譯器輸出得到的是在basesource.cpp行47:
std::list<PEnemy> enemies = Game::LEVEL->getEnemies();
爲什麼這是否會導致問題?我該如何解決這個錯誤?
錯誤提醒您'std :: unique_ptr'不可複製。 – juanchopanza 2014-10-22 11:02:15