gpt4 book ai didi

c++ - 我可以在这个类中用嵌套类填充模板参数吗?

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

例如,我有一个类如下所示:

template <typename T>
class Test {
public:
T* t;
...
};

那么(如何)我可以扩展类似这样的类?

class TestImplement : Test<TestImplement::TestInner> // the TestInner class is defind in the class {
class TestInner {};
...
};

由于TestInner定义在模板需要的地方之后,这段代码是非法的,前向声明也是无用的。

最佳答案

好吧,你根本做不到,你已经指出了原因。

更多地考虑逻辑而不是语法,因为基类定义可能会根据其模板参数的不同而有所不同,并且由于基类定义可能会影响 TestInner 的工作方式,你试图创建一个循环依赖,这在我们的物理现实中是不可能的。

您可以尝试使用 TestImplement 作为模板参数 (CRTP!),然后从基础中查找 typename TemplateArgument::TestInner,但即使这样可行我怀疑它的清晰度。

我会改用非嵌套类。

关于c++ - 我可以在这个类中用嵌套类填充模板参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53722541/

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