Можете ли вы использовать boost :: shared_ptr в качестве ключа для карты?

Возможно, мне придется немного переосмыслить мой общий дизайн, но в его нынешнем виде, похоже, я могу сделать что-то вроде:

class A; 
class B;
std::map<boost::shared_ptr<const A>, B> APtrToBMap;

Я пробовал это, и, похоже, он работает простой случай (компилятор не жаловался, и простые тесты вроде работают). Но я сомневаюсь в этом подходе. Я подозреваю, что здесь есть некоторые подводные камни, о которых я не знаю.

Итак, справедливо ли вышесказанное в практическом смысле? Или есть какой-то недостаток, о котором я не подозреваю, когда я это делаю?

13
задан skaffman 10 November 2010 в 15:24
поделиться