2014-09-11 186 views
15

因此,在Qt編程時,我希望儘可能使用Qt實現。 據我所見,沒有Qt版本的std::unique_ptr或在那裏?C++ Qt哪裏的std :: unique_ptr Qt版本?

如果Qt不存在,那麼會產生「相同」結果的替代方案是什麼?

+0

你爲什麼特別想要一個Qt版本?你是否試圖在沒有標準庫的情況下編寫C++? – 2014-09-11 11:54:38

+2

'QScopedPointer' – 2014-09-11 11:54:54

+1

@MikeSeymour不是特別的,但當Qt實現覆蓋它時,不需要將std與Qt混合:) – deW1 2014-09-11 11:59:19

回答

24

相當於std::unique_ptr的Qt是QScopedPointer

它不太有用,因爲它不支持移動語義,因此它在實用程序中更接近C++ 03 std::auto_ptrWhy is auto_ptr being deprecated?)。

+2

'QScopedPointer'不像'auto_ptr'那樣壞了嗎?它不轉讓副本和分配所有權,它只是不支持複製和分配。 (afaict,閱讀文檔) – 2014-09-11 12:04:51

+0

@Benjamin Lindley確實,它根本沒有拷貝構造函數,甚至沒有非const構造函數。 – ecatmur 2014-09-11 12:06:59

+0

TBH它具有自定義刪除器,auto_ptr沒有。 – MSalters 2014-09-11 12:26:01