全体的なデザインをもう少し再考する必要があるかもしれませんが、現状では、次のようなことをしたいと思うかもしれません:
class A;
class B;
std::map<boost::shared_ptr<const A>, B> APtrToBMap;
私はこれを試しましたが、単純なケースではうまくいくようです (コンパイラは文句を言わず、単純なテストはうまくいくようです)。しかし、私はこのアプローチについて考え直しています。そこには、私が気づいていない落とし穴がいくつかあると思います。
では、上記は実際的な意味で有効ですか?それとも、これを行うときに気付いていない欠陥がありますか?