Aşağıdaki kodu düşünün:İşaretçi-dönüştürülebilir üye nasıl oluşturulur?
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>();
}
};
Derleyici bir hata mesajı oluşturur. Buradaki şey, m
üyesinin değişebilir olmasıdır, bu nedenle m
'u değiştirmesine izin verilir. Ancak işlev imzası değişebilir bildirimi gizler.
Bu kodu derlemek için işaretçiden dönüştürülebilen üye nasıl ayrılır? İmkansızsa, lütfen Standart C++ 'ya bağlanın.
Bu kod, 5.5/5 ° C++ standart göre kötü oluşturulur
Çok iyi .. Çözüm mükemmel! –