पर विचार करें निम्नलिखित कोड:पॉइंटर-टू-म्यूटेबल-सदस्य कैसे बनाएं?
struct Foo
{
mutable int m;
template<int Foo::* member>
void change_member() const {
this->*member = 12; // Error: you cannot assign to a variable that is const
}
void g() const {
change_member<&Foo::m>();
}
};
संकलक एक त्रुटि संदेश उत्पन्न करता है। बात यह है कि सदस्य m
उत्परिवर्तनीय है इसलिए इसे m
बदलने की अनुमति है। लेकिन समारोह हस्ताक्षर उत्परिवर्ती घोषणा छुपाता है।
इस कोड को संकलित करने के लिए पॉइंटर-टू-म्यूटेबल-सदस्य को कैसे रद्द करें? यदि यह असंभव है तो कृपया मानक सी ++ से लिंक करें।
बहुत अच्छा .. वर्कअराउंड सही है! –