Код: Выделить всё
clang-tidyКод: Выделить всё
template
auto transform_tuple_impl(F&& f, Tuple&& tuple, std::index_sequence)
{
return std::make_tuple(f(std::get(std::forward(tuple)))...);
}
template
auto transform_tuple(F&& f, Tuple&& t)
{
constexpr size_t size = std::tuple_size::value;
return transform_tuple_impl(std::forward(f), std::forward(t), std::make_index_sequence{});
}
< /code>
С этим сообщением: < /p>
error: 'tuple' used after it was forwarded [bugprone-use-after-move,-warnings-as-errors]
| return std::make_tuple(f(std::get(std::forward(tuple)))...);
| ^
note: forward occurred here
| return std::make_tuple(f(std::get(std::forward(tuple)))...);
| ^
note: the use and forward are unsequenced, i.e. there is no guarantee about the order in which they are evaluated
| return std::make_tuple(f(std::get(std::forward(tuple)))...);
| ^
Подробнее здесь: https://stackoverflow.com/questions/796 ... forwarding