gpt4 book ai didi

c++ - 如何在 C++ 中使用前向声明的模板类声明模板类对象的外部数组?

转载 作者:行者123 更新时间:2023-11-28 06:27:08 25 4
gpt4 key购买 nike

考虑以下现有代码(按预期编译和执行):

/* 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[] 才能编译代码?

最佳答案

  • 首先,转发声明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;
};

关于c++ - 如何在 C++ 中使用前向声明的模板类声明模板类对象的外部数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com