Мне, возможно, придется немного переосмыслить свой общий дизайн, но в его нынешнем виде, похоже, мне захочется сделать что-то вроде:
class A;
class B;
std::map<boost::shared_ptr<const A>, B> APtrToBMap;
Я пробовал это, и, похоже, оно работает в простом случае (компилятор не жаловался, а простые тесты, похоже, работают). Но у меня есть вторые мысли об этом подходе. Я подозреваю, что там есть некоторые ошибки, о которых я не знаю.
Итак, верно ли вышесказанное в практическом смысле? Или есть какой-то недостаток, о котором я не знаю, когда делаю это?