5
考慮下面的代碼:如何創建指向可變成員的指針?
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
。但函數簽名隱藏了可變聲明。
如何decalre pointer-to-mutable-member來編譯這段代碼? 如果不可能,請鏈接到標準C++。
非常好..解決方法非常完美! – 2010-04-20 13:22:13