LINUX.ORG.RU

История изменений

Исправление Siborgium, (текущая версия) :

Вот в _check_eq свертку и надо было использовать.

constexpr auto operator != (const iterator& other) const {
    return [=,this]<auto ... I>(std::index_sequence<I...>) {
        return ((std::get<I>(this->args) != std::get<I>(other.args)) || ...);
    }(std::make_index_sequence<sizeof...(ts)>{});
}

Исправление Siborgium, :

Вот в _check_eq свертку и надо было использовать.

constexpr auto operator != (const iterator& other) const {
    return [=,this]<auto ... I>(std::index_sequence<I...>) {
        return ((std::get<I>(this->args) == std::get<I>(other.args)) && ...);
    }(std::make_index_sequence<sizeof...(ts)>{});
}

Исправление Siborgium, :

Вот в _check_eq свертку и надо было использовать.

constexpr auto operator != (const iterator& other) const {
    return [=,this]<auto ... I>(std::index_sequence<I...>) {
        return ((std::get<I>(*this) == std::get<I>(other)) && ...);
    }(std::make_index_sequence<sizeof...(ts)>{});
}

Исправление Siborgium, :

Вот в _check_eq свертку и надо было использовать.

        constexpr auto operator != (const iterator& other) const {
            return [=,this]<auto ... I>(std::index_sequence<I...>) {
                return ((std::get<I>(*this) == std::get<I>(other)) && ...);
            }(std::make_index_sequence<sizeof...(ts)>{});
        }

Исходная версия Siborgium, :

Вот в _check_eq свертку и надо было использовать.

constexpr auto operator != (const iterator& other) const {
    constexpr auto seq = std::make_index_sequence<sizeof...(ts)>{};
    return [=,this](auto ... i) { return ((std::get<i>(*this) != std::get<i>(other)) || ...); }(seq);
}