Hi everyone,

I'm currently setting up an image processing pipeline for large (out of core) GIS images using GIL.

I'm quite glad with the results I get right now, but I stumbled upon a problem with the default image_view size / iterator handling.

Currently, image_view::size_type is defined as std::size_t, and image_view::end is implemented as begin()+(difference_type)size();

As my images pixel count exceed the max value of std::size_t on my dev platform (win32), the image_view::end member function fails to give a valid iterator...

As nearly every types defined in image_view are given by the templated locator type, I'm thinking that the size_type should not be an exception, and should be given by the locator type.

I also tend to think that the 'image iterators' should not share the difference_type type with the '1D iterators' - but these are mainly performance considerations in my case, as my image iterators should be 64bits, and my 1d iterators can be 32 bits.

For now, I changed my GIL working copy to patch image_view definition, as I did not see any way to work around the iterator problem. Did I miss anything ? Is there any user-level workaround I could use, or should the image_view class be modified ?

Any thoughts would be welcome :)
Thanks,

Nicolas.