इस कोड:मुझे एक अस्थिर से डिफ़ॉल्ट प्रतिलिपि निर्माता क्यों प्रदान नहीं किया गया है?
class X {
int member;
};
volatile X a;
X b = a;
त्रुटि के साथ विफल:
prog.cpp:6:7: error: no matching function for call to ‘X::X(volatile X&)’
prog.cpp:6:7: note: candidates are:
prog.cpp:1:7: note: X::X()
prog.cpp:1:7: note: candidate expects 0 arguments, 1 provided
prog.cpp:1:7: note: X::X(const X&)
prog.cpp:1:7: note: no known conversion for argument 1 from ‘volatile X’ to ‘const X&’
वहाँ किसी भी तरह से मैं संकलक मेरे लिए एक अस्थिर प्रतिलिपि निर्माता उत्पन्न करने के लिए प्राप्त कर सकते हैं है?
आप की जरूरत है 'बी' वाष्पशील घोषित करने के लिए। – 0x499602D2
लेकिन मुझे एक अस्थिर प्रतिलिपि चाहिए! – Eric
'अस्थिर एक्स और' को 'कॉन्स्ट एक्स' में परिवर्तित नहीं किया जा सकता क्योंकि दोनों क्वालीफायर एक-दूसरे से विरोधाभास करते हैं: 'कॉन्स' कहता है, "इसे एक बार पढ़ें, यह बदलने वाला नहीं है", जबकि 'अस्थिर' कहता है, "इसे हर बार पढ़ें, क्योंकि यह बदल सकते हैं"। सी ++ मानक में कुछ स्मार्ट नियम होना चाहिए जो इस रूपांतरण को पूरी तरह से प्रतिबंधित करने पर रोक लगाता है। – dasblinkenlight