संभव डुप्लिकेट:
Can I list-initialize a vector of move-only type?प्रारंभकर्ता सूची के साथ noncopyable के एक कंटेनर कैसे शुरू करें?
मैं जीसीसी 4.6.1 का उपयोग इस कोड
int main()
{
std::vector<std::unique_ptr<int>> vec({
std::unique_ptr<int>(new int(0)),
std::unique_ptr<int>(new int(1)),
});
return 0;
}
क्या जी ++ शिकायत में संकलित करने के लिए वहाँ
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.1/../../../../include/c++/4.6.1/bits/stl_construct.h:76:7: **error: use of deleted function 'std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&)** [with _Tp = int, _Dp = std::default_delete<int>, std::unique_ptr<_Tp, _Dp> = std::unique_ptr<int>]'
की तरह कुछ है
ऐसा लगता है कि जी ++ अभी भी इस मामले में प्रतिलिपि बनाने की कोशिश करता है, हालांकि मैंने जो प्रारंभकर्ता सूची में रखा है वह आर-वैल्यू हैं। तो मैं प्रारंभकर्ता सूची के साथ noncopyable के एक कंटेनर कैसे शुरू कर सकता है?
दिलचस्प। मैंने जो परीक्षण किया है, उससे ऐसा कोई प्रतीत नहीं होता है ... – Klaim