【发布时间】:2010-11-10 15:21:29
【问题描述】:
我可能需要重新考虑我的整体设计,但就目前而言,看起来我可能想做一些类似的事情:
class A;
class B;
std::map<boost::shared_ptr<const A>, B> APtrToBMap;
我试过这个,它似乎在一个简单的情况下工作(编译器没有抱怨,简单的测试似乎工作)。但我对这种方法有了第二个想法。我怀疑其中有一些我不知道的问题。
那么,以上内容在实际意义上有效吗?或者我这样做时是否有一些我不知道的缺陷?
【问题讨论】:
-
@Sam,你还没有发现问题并不意味着它不存在。我认为询问此类非标准用法的潜在问题是个好主意。
-
感谢大家的回复。正如你们中的一些人所指出的,这主要是糟糕设计的症状。我试图在错误的地方解决问题。从那以后,我重新检查了我的设计,不需要做我质疑的糟糕地图。关于为什么这是一个坏主意的回答也非常有启发性。我的直觉知道它不会完全按照我的意愿去做。直到现在我才明白为什么。 (事实上,我试图做的不适用于我上面模板化的地图)
标签: c++ shared-ptr stdmap