【发布时间】:2018-01-12 11:44:12
【问题描述】:
在我的文件中说我想做的事:
typedef vector<foo> foos
如果foo 是另一个文件中的类,我可以转发声明:class foo。但是如果foo 本身就是一个原始的typedef,我不知道如何处理它。例如说在我已经完成的另一个文件中:
typedef int foo
我唯一的选择是#include 文件foo 是typedef'd,还是typedef vector<int> foos?为了可读性和关联性,我宁愿避免这两个选项。还有什么我可以做的吗?
【问题讨论】:
-
制作一个只包含 typedef 的类型标头并将它们包含在两个文件中?
-
@NathanOliver T.T 我不想在我的类型定义文件中使用
#include <vector>。请不要让我这样做。它将被包括在任何地方。 -
我不是这么建议的。我建议你把
typedef int foo放在一个头文件中,然后把它包含在你要使用foo的文件中。 -
当
foo是原始类型时,您可以将自己作为包装类,以便转发它。 -
@NathanOliver
foo真的是一个 32 位整数的typedef,所以它几乎无处不在......你知道我们必须如何在 C++ 中做那些typedefs 因为谁知道int的真正含义 >:|
标签: c++ include typedef primitive forward-declaration