c++ - Using boost::mutex - implicitly deleted error (because the default definition would be ill-formed) -
मेरे पास क्लास दिखता है जैसा कि .h
फ़ाइल में है (हैडर)
#include & lt; boost / thread.hpp & gt; क्लास मायक्लास {निजी: बढ़ावा :: माइटेक्स बीपीयूएमएमटीएक्स_; // ... अन्य वार्स सार्वजनिक: // सार्वजनिक वार्स और विधियां}
मुझे बनाने / संकलन करने की कोशिश करने में निम्न त्रुटि मिलती है।
MyClass H: 38: 7: नोट: 'MyClass :: MyClass (const MyClass & amp;)' को निहित रूप से हटा दिया जाता है क्योंकि डिफ़ॉल्ट परिभाषा बीमार रूप से बन जाएगी: MyClass.h: 38: 7: त्रुटि: हटाए गए फ़ंक्शन का उपयोग 'boost :: Mutex :: mutex (const boost :: mutex & amp;) '
मैं अभी भी cpp फाइल में mutex का उपयोग नहीं करता। जब मैं boost :: mutex
लाइन पर टिप्पणी करता हूं तो यह ठीक बनाता है क्या हो रहा है?
कंपाइलर द्वारा उत्पन्न डिफ़ॉल्ट प्रतिलिपि कंट्रोलर सभी डेटा सदस्यों को डिफ़ॉल्ट रूप से प्रतिलिपि बनाता है boost :: mutex
का आपका उपयोग त्रुटि को फेंकता है क्योंकि म्यूटक्स कॉपी करने योग्य नहीं है।
आप अपनी खुद की कॉपी कन्स्ट्रक्टर लिख सकते हैं जो म्यूट एक्स की प्रतिलिपि करने का प्रयास नहीं करता है MyClass
के लिए प्रतिलिपि कन्स्ट्रक्टर हटाएं।
#include & lt; boost / thread.hpp & gt; क्लास मायक्लास {निजी: बढ़ावा :: माइटेक्स बीपीयूएमएमटीएक्स_; // ... अन्य वार्स सार्वजनिक: // सार्वजनिक वार्स और विधियों MyClass (const MyClass & amp;) = हटाएं; }
Comments
Post a Comment