例えば:
struct B{};
struct A {
const B& findB() const { /* some non trivial code */ }
// B& findB() { /* the same non trivial code */ }
B& findB() {
const A& a = *this;
const B& b = a.findB();
return const_cast<B&>(b);
}
};
問題は、定数 findB および非定数 findB メンバー関数内で同じロジックを繰り返さないようにしたいということです。