Ah, sorry, didn't see your follow-up.  Yeah, that's the issue.

On Sun, Jun 30, 2024 at 5:51 PM Antonio Sanchez <[email protected]>
wrote:

> It must be your use of the boost zip iterator in general.  I've never used
> it before, but replacing the Eigen vector with std::vector results in the
> same issue.
>
> https://godbolt.org/z/e137hEaj9
>
> On Sat, Jun 29, 2024 at 9:30 PM Kip Warner <[email protected]> wrote:
>
>> Hello list,
>>
>> I noticed today a problem in Boost's zip_iterator traversing well
>> beyond the end of a pair of equal dimension Eigen column vectors.
>>
>> I've prepared a minimal below:
>>
>>    #include <iostream>
>>    #include <Eigen/Core>
>>    #include <boost/iterator/zip_iterator.hpp>
>>
>>    using namespace std;
>>
>>    int main()
>>    {
>>        using ColumnVectorType = Eigen::Matrix<float, 32, 1>;
>>
>>        ColumnVectorType FirstVector = ColumnVectorType::Zero();
>>        ColumnVectorType SecondVector = ColumnVectorType::Zero();
>>
>>        const auto ZipperStart = boost::make_zip_iterator(
>>            boost::make_tuple(
>>                std::cbegin(FirstVector),
>>                std::cbegin(SecondVector)));
>>
>>        // End...
>>        const auto ZipperEnd = boost::make_zip_iterator(
>>            boost::make_tuple(
>>                std::cend(FirstVector),
>>                std::cend(SecondVector)));
>>
>>        int index = 0;
>>
>>        for(auto Iterator = ZipperStart; ZipperStart != ZipperEnd;
>> ++Iterator)
>>        {
>>            std::cout << "Iteration: " << index << std::endl;
>>          ++index;
>>        }
>>
>>        return 0;
>>    }
>>
>> Running the above via Godbolt results in iterating the body of the loop
>> thousands of times when I expected only 32.
>>
>>    https://godbolt.org/z/fKG77s1ds
>>
>> I then modified the above code to get rid of the second column vector
>> and the zip_iterator to iterate via the normal STL interface over the
>> single column vector. It executes as expected only 32 times.
>>
>> This is probably just a problem with my usage, but I just wanted to let
>> the list know in case this is a bug.
>>
>> --
>> Kip Warner
>> OpenPGP signed/encrypted mail preferred
>> https://www.thevertigo.com
>>
>

Reply via email to