मैं प्रकार std::atomic<int>
के एक सदस्य चर _atomicVar
के साथ एक class A
है संदर्भित करने के लिए प्रयास करते हैं।
त्रुटि C2280: किसी हटाए समारोह (परमाणु <int>)
#include <atomic>
class A
{
public:
A();
~A();
private:
std::atomic<int> _atomicVar;
};
अगर मैं इस परियोजना मैं निम्नलिखित त्रुटि मिलती है निर्माण:
error C2280: 'std::atomic<int>::atomic(const std::atomic<int> &)' : attempting to reference a deleted function
मैं मुख्य रूप से एक सी # डेवलपर हूं तो मैं सी के हर विस्तार ++ (अभी तक) पता नहीं है। मुझे नहीं पता कि मैं atomic<int>
की कॉपी c'tor का उपयोग कहां करता हूं।
मैं भी _atomicVar
प्रारंभ करने की कोशिश की:
std::atomic<int> _atomicVar { 0 };
... लेकिन बात नहीं बनी।
मुझे उम्मीद है कि _atomicVar
(स्पष्ट प्रारंभिकरण के बिना) int
के डिफ़ॉल्ट मान के साथ आरंभ किया जाएगा।
क्या आप मुझे बता सकते हैं कि यह त्रुटि क्यों होती है?
आप विजुअल स्टूडियो का उपयोग कर रहे प्रतीत होते हैं। कौन सा संस्करण? कोड की आपको किस पंक्ति पर त्रुटि मिलती है? –
क्या यह आपका पूरा कोड है? शायद आप 'ए' ऑब्जेक्ट्स की प्रतिलिपि बना रहे हैं? हो सकता है कि आप एक कंटेनर का उपयोग करें जिसके लिए 'CopyConstructible' तत्वों की आवश्यकता है? – zch
बस कॉपी कन्स्ट्रक्टर को परिभाषित नहीं करने के लिए पर्याप्त कारण है।जब आप प्रकारों को परिभाषित करते हैं, जिनमें 'परमाणु' सदस्य होते हैं, तो आपको सभी अंतर्निहित संचालन के लिए स्पष्ट अर्थात् परिभाषित करना होगा, जिसे संकलक द्वारा निष्पादित या डाला जा सकता है। –