例如,利用此代码段:如何转发声明我将使用typedef创建的类型?
class Foo;
class Something {
Foo *thing;
};
typedef std::vector<Something> Foo;
这并不编译,因为Foo
已经是一个类型,当typedef
被击中。不过,我认为这说明了我的用例;我有周期性的依赖关系,需要一个来完成其他的,但(目前)其中的一件事是typedef'd。我宁愿不写类似
class Foo {
std::vector<Something> inside;
}
,因为那时我需要记住inside
每my_foo.inside.some_method()
。我还想避免在std::vector<Something>
周围写一个包装,因为它会有很多样板。
我该如何转发声明我正在用typedef
定义的类型?另外,如何使用上述解决方案之一解决我的周期性依赖问题而不使用?它有可能吗?
请注意,我不是问“我怎样才能typedef
与尚未申报的类型”。我在问“如何使用typedef
来定义先前声明的类型”。
道歉,如果任何术语关闭。我从来没有真正学过它。请随时纠正我的疑问或者质疑假设。 –
'typedef Foo;'也许 –
@ Jean-FrançoisFabreIIRC那是一个编译错误 –