【发布时间】:2013-06-02 17:35:06
【问题描述】:
在类中转发声明 typedef 的最佳解决方案是什么。这是我需要解决的一个例子:
class A;
class B;
class A
{
typedef boost::shared_ptr<A> Ptr;
B::Ptr foo();
};
class B
{
typedef boost::shared_ptr<B> Ptr;
A::Ptr bar();
};
我想我可以做到以下几点:
boost::shared_ptr<B> foo();
但是有更优雅的解决方案吗?
【问题讨论】:
-
IMO 你很乐意在第 3 行周围执行 typedef,至少其中一个。或者使用另一个 typedef 并稍后使用 static_assert 和 is_same_type 检查以确保一致性。
标签: c++ typedef declaration forward