【发布时间】:2014-08-26 18:56:03
【问题描述】:
我一直在研究一个简单的仅标头库,但我遇到了一个我无法解决的循环问题。我按类型返回,这可能无济于事。
template<typename T>
class Foo;
class Bar;
class Baz
{
public:
template<typename T>
T getAFoo<T>()
{
return Foo<T>();
}
Bar getABar() // Prefer return by type in this situation.
{
return Bar(); // Error.
}
};
template<typename T>
class Foo {
/* ... */
void doSomething() { m_baz.something(); }
Baz &m_baz;
};
class Bar {
/* ... */
void doSomething() { m_baz.something(); }
Baz &m_baz;
};
我尝试对函数 Bar getABar() 进行原型设计,然后在 Bars 定义之后对其进行定义,但这只会产生重复的符号错误。
有点觉得我只需要它是一个没有价值的模板。
【问题讨论】:
-
你应该考虑这个线程stackoverflow.com/questions/553682/…。
标签: c++ templates dependencies