前提・実現したいこと
Ptr
内のstd::unique_ptr<int[]>
をstd::vector<Ptr>
内のstd::unique_ptr<int[]>
へ移動したい。
発生している問題・エラーメッセージ
エラー C2280 'Ptr::Ptr(const Ptr &)': 削除された関数を参照しようとしています unique
該当のソースコード
cpp
1#include <iostream> 2#include <memory> 3#include <vector> 4#include <utility> 5 6std::unique_ptr<int[]> int_ptr(const size_t size_) 7{ 8 std::unique_ptr<int[]> new_int(new int[size_]); 9 return new_int; 10} 11 12struct Ptr 13{ 14 Ptr(std::unique_ptr<int[]>&& ptr_) :ptr(std::move(ptr_)) {}; 15 std::unique_ptr<int[]> ptr; 16}; 17 18int main() 19{ 20 const size_t size_ = 10; 21 std::vector<Ptr> testVec; 22 23 Ptr test(int_ptr(size_)); 24 testVec.emplace_back(test); //エラー C2280 'Ptr::Ptr(const Ptr &)': 削除された関数を参照しようとしています unique 25 26 return 0; 27}
補足情報(FW/ツールのバージョンなど)
OS: Windows10 Home
言語: C++11(CLI)
IDE: Visual Studio 2017
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/06 09:36