const 和非常量方法的复制粘贴

Copy paste of const and non-const methods

考虑以下代码:
http://coliru.stacked-crooked.com/a/d89377889a8ff749

IStorage 有常量和非常量获取方法。
具体实现定义了它们,但定义只是复制粘贴。
由于 C++ 的 const 机制,我无法从另一个调用一个 get 方法。

有什么办法可以避免这种复制粘贴吗?

这是 const_cast

的合法用途之一
const std::string* get(ID id) const override
{
    return const_cast<ConcreteStorage*>(this)->get(id);
}