gpt4 book ai didi

c++ - 类中的别名 C++ 模板

转载 作者:太空宇宙 更新时间:2023-11-04 13:22:19 30 4
gpt4 key购买 nike

我正在实现一个必须模板化的类的成员函数。

class Foo {

template <typename T>
void do(templated_class<T> in);
};

template <typename T>
void Foo::do(templated_class<T> in) {
// definition starts here.
}

有没有什么简单的方法可以为模板起别名,这样我就不必写 template <typename T>每次我放一些与类(class)有关的东西templated_class ?例如,如果以下可能,我正在成像。

class Foo {
template <typename T>
using templated_class_t = templated_class<T>;

void (templated_class_t in);
};

void Foo::do(templated_class_t in) {
// definition starts here.
}

显然编译器对此有提示。

最佳答案

如果Foo 的大部分成员函数都模板化为相同的参数,只需将Foo 设为类模板即可。此外,您可以将所有定义放在类中并节省一些代码重复。

template<class T>
class Foo
{
do_fun(template_class<T> in)
{
// put definition in-class
}
};

否则(只有 do_fun 是成员模板)只需将该定义放在类中

class Foo
{
template<class T>
do_fun(template_class<T> in)
{
// put definition in-class
}
};

关于c++ - 类中的别名 C++ 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34755579/

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