c++ - 如何在编写模板模板函数时使用类型别名
问题描述
我有一个模板类如下。
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;
}
我想知道是否可以使用类中定义的类型别名并避免为 sum 函数编写模板模板并获得类似的结果?这里指出了类似的问题,但没有讨论类型别名的使用。
解决方案
你当然可以。
template <typename T>
typename T::value_type sum(T p)
{
return p.x + p.y;
}
推荐阅读
- html - CSS - 背景位置:前 150 像素不起作用
- sql - Oracle:如何在表中的 USER_TABLES.TABLE_NAME 上添加外键
- c# - 一个对象项插入数组 Mongodb C#
- angular - PlatformRef.bootstrapModule(...) 引发错误,提示“未提供 ResourceLoader 实现”。
- html - html页面联系表格安全
- java - Liferay Genric Portlet Dem Null 值
- wordpress - 如何将 wordpress 类别网址(如 www.example.com/m/a1)修改为 www.example.com/category/m/a1
- php - 如何将带方括号的字符串转换为数组?
- c - 在c中存储指向带有参数函数的回调的指针
- react-native - 在平面列表中单独更改特定组件的状态,就像在 btns 之类的 facebook 中一样