c++ - 将数组加在一起的索引序列
问题描述
我一直在尝试使用std::index_sequence
,我一直在尝试让这段代码起作用,有什么帮助或指示吗?
template <typename tty,
std::size_t ssz,
typename is = std::make_index_sequence<std::min(sz, ssz)>>
auto operator + (ss::array_helper<tty, ssz> right) const
{
auto ret = *this;
[ = ] ( auto s ) {
[] ( ty& l , tty& r ) { l += r; }
( ret [ is ] , right [ is ] )...;
} ( is { } );
return ret;
};
解决方案
的用法std::index_sequence
是将其扩展为可变形式:
[&] template <std::size_t ... Is> (std::index_sequence<Is...>)
{
((res[Is] += rhs[Is]), ...);
} (std::make_index_sequence<std::min(sz, ssz)>{});
推荐阅读
- linux - 在 PATH terraform 中设置路径
- php - 如何在 WooCommerce 中下订单后获取购买数据并将其作为 POST 请求发送?
- php - 使用自定义 ID 和自定义消息在 PHP 中处理错误
- asp.net-core - IIS 应用程序池关闭时间限制(秒)设置是否有 IIS Express 等效项?
- r - 使用R中的distm()计算数据帧中两个GPS位置之间的距离
- wpf - 防止禁用控制或效果库的项目代码?
- linq - 具有大于和小于日期条件的 LINQ 左外连接
- c++ - 跳过第 3 方库中的 #define
- math - 找到垂直点与直线相交的 x 和 y 坐标
- r - 将不同数据表的两列与字符串部分匹配