我想寫一個成員函數來檢測實例化對象是否爲const。如何從成員函數中檢測實例是否爲const?
舉個簡單的例子,我們可以考慮下面的類定義
class Foo{
public:
void constnessChecker(){
bool isConst;
// MORE CODE GOES HERE...
if (isConst) {
std::cout << "This instance is const! << std::endl;
} else {
std::cout << "This instance is not const! << std::endl;
}
}
};
和下面的代碼
int main(){
Foo foo1;
Foo const foo2;
foo1.constnessChecker();
foo2.constnessChecker();
}
應該產生
This instance is not const!
This instance is const!
這可能嗎?
檢查'boost :: is_const',請參閱http://www.boost.org/doc/libs/1_55_0/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html – arne
@ame:您無法使用在成員函數中,你能嗎? –
聞起來很糟糕。 「const實例」究竟是什麼?例如。是一個非顯式的const成員const?即'const struct {Foo foo; } bar;' - 是'foo'一個'const Foo'? – MSalters