我有一个看起来像这样的函数:
template <typename T, std::size_t... I>
std::ostream& vector_insert(std::ostream& lhs, const char* delim, const T& rhs, std::index_sequence<I...>) {
std::ostream_iterator<float> it(lhs, delim);
((*it++ = at(rhs, I)), ...);
return lhs;
}
这是我的最后一次尝试,但我的扩展仍然失败integer_sequence
我希望有人能告诉我如何编写一个有效扩展为的行:
*it++ = at(rhs, 0U), *it++ = at(rhs, 1U), *it++ = at(rhs, 2U)
我尝试过的其他事情是:
*it++ = at(rhs, I...)
*it++ = at(rhs, I)...
(*it++ = at(rhs, I))...
他们都给了我错误:
错误 C3520:
I
: 必须在此上下文中展开参数包
我如何扩展这个东西?
编辑:
@AndyG 指出这似乎是一个visual-studio-2017错误。