gpt4 book ai didi

c++ - 在 C++ 中使用带有模板方法的模板类

转载 作者:行者123 更新时间:2023-11-30 02:00:33 24 4
gpt4 key购买 nike

我有一个类,它有一个公共(public)模板化方法。这个类有 2 个行为策略,我想通过类模板传递。

template<class Strategy>
class SomeClass {
public:
template<class B>
void ProcessType(){}
};

// And do something like this:
SomeClass<Strategy1> sc();
sc.ProcessType<SomeClassType>();
sc.ProcessType<SomeClassType2>();

SomeClass<Strategy2> sc2();
sc2.ProcessType<SomeClassType>();
sc2.ProcessType<SomeClassType2>();

但是这段代码无法编译。我需要像这样准确使用(仅通过策略进行操作)。

最佳答案

问题是:

SomeClass<Strategy1> sc();

这是一个名为 sc 的函数的声明不带参数并返回 SomeClass<Strategy1> .这通常被称为令人烦恼的解析(但不是 most vexing parse )。你想要的是:

SomeClass<Strategy1> sc;

关于c++ - 在 C++ 中使用带有模板方法的模板类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022124/

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