【发布时间】:2021-01-16 15:39:23
【问题描述】:
我一直在尝试使用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;
};
【问题讨论】:
-
这里的
sz是什么? -
ty 是当前数组的类型,sz 是当前数组的大小,tty 是运算符右侧的数组类型,ssz 是运算符右侧数组的大小。我试图只将每个索引与 std::index_sequence 一起添加,但只允许将最小大小添加在一起。
-
你能不能edit你的问题显示minimal reproducible example? C++ 语法相当复杂。大多数愿意回答和帮助你的人都想仔细检查他们的答案是否真的可以编译和工作。如图所示,这几乎是不可能的,因为显示的代码使用了未定义的类型和命名空间,而且对于它们是什么来说大多是个谜。在 stackoverflow.com 上发布他们的第一个问题之前,每个人都应该采取tour,阅读help center,了解minimal reproducible example 和How to Ask 问题的所有要求。
-
如何让它“正确”?它想做什么,你打算如何使用它?这些是这里不清楚的。写出你试图“正确”的整个代码,包括你如何使用它。
-
好吧,没有人问你“如何让它编译”。你被要求显示一个minimal reproducible example,除了有问题的部分之外,所有东西都可以编译。在 Stackoverflow 上获得帮助的最佳方式是让其他人尽可能轻松地自己重现您的问题。以目前的形式,没有人能做到这一点,因为没有人知道这些神秘的
ss::array_helper类型是什么,或者模板使用哪些参数进行实例化。你有没有使用 Stackoverflow 的 tour,阅读 help center,并了解 How to Ask 的问题?如果没有,为什么不呢?