gpt4 book ai didi

c++ - 如何在编写模板模板函数时使用类型别名

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

我有一个模板类如下。

template <class T>
class Point
{
T x;
T y;
using value_type = T;
Point() {}
Point(T a, T b)
{
x = a;
y = b;
}
};

我想编写一个函数,将 x 和 y 值相加并以类定义的类型返回 x+y。一种方法是使用模板模板,如下所示:

template <typename T2, template <typename> class T1>
T2 sum(T1<T2> p)
{
return p.x + p.y;
}

我想知道是否可以使用类中定义的类型别名并避免为求和函数编写模板模板并获得类似的结果? here 中也指出了类似的担忧, 但那里没有讨论类型别名的使用。

最佳答案

当然可以。

template <typename T>
typename T::value_type sum(T p)
{
return p.x + p.y;
}

关于c++ - 如何在编写模板模板函数时使用类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56512024/

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