gpt4 book ai didi

c++ - 具有模板参数的类成员包含另一个具有参数的模板类

转载 作者:行者123 更新时间:2023-11-28 05:11:55 26 4
gpt4 key购买 nike

我想要一个指向 B of C of T 的指针(下面的示例)。我正在尝试使用 g++ 3.4.0 编译类似的类,但收到错误消息:“b 未在此范围内声明”。我如何在 C++ 中实现这一点?

主要.cpp:

template <class T> class B;
template <class T> class C;

template <class T>
class A
{
private:
T* first;
B<C<T>>* b;
};

template <class T>
class B
{
};

template <class T>
class C
{
};

最佳答案

在 1998 和 2003 版本的 C++ 中,要关闭两个模板参数列表,或一个模板参数列表和一个 C++ 风格的转换,您必须在 > 字符之间放置一个空格,以保持分词器将它们解析为 >>> 标记。

std::vector<std::vector<int> > matrix;
std::vector<double> v = static_cast<std::vector<double> >(myobj);

语法指定参数列表或转换类型以 > 标记结尾,并且不将 >> 标记识别为其中的两个标记。

在 C++11 中,添加了一条规则,用于在模板参数列表内和括号外将 >> 标记替换为两个 > 标记。 (所以如果你真的想右移,你必须使用括号。)

std::array<double, (16>>3)> arr;

关于c++ - 具有模板参数的类成员包含另一个具有参数的模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43333020/

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