Edward Diener wrote:
Your suggestion worked brilliantly. With -std=gnu++03 references to references are fine. However it looks like zip_iterator may need to be changed so that if references to references are not supported it should not be used. I did not write or update zip_iterator; Kohei Takahashi did the work of updating it.
It's not us forming the reference to reference, it's the __is_abstract intrinsic, so that's arguably a bug in the compiler. There's something odd in your error message though.
error: forming reference to reference type 'std::__cxx11::basic_string<char>&' pair(const _T1& __a, const _T2& __b) ^~~~
__cxx11 looks C++11 specific, and in -std=c++03 mode std::string shouldn't contain C++11 things, so there could be something else going wrong here.