考虑以下现有代码(按预期编译和执行):
/* File foo.h */
extern const struct Foo bar[]; /* Definition in foo.cpp */
struct Foo
{
Foo(int i) : Foo(bar[i]) {}
int x;
};
我现在想将Foo
更改为模板类,例如:
template <typename T>
struct Foo
{
Foo(int i) : Foo(bar[i]) {}
T x;
};
我现在如何声明extern const struct Foo bar[]
以便代码编译?
答案 0 :(得分:1)
template <typename T> struct Foo
。bar
声明Foo
。 template <typename T>
struct Foo;
extern const Foo<int> bar[];
template <typename T>
struct Foo
{
Foo(int i) : Foo(bar[i]) {}
T x;
};