
Hi, Trying to combine boost multi_array and serialization I found a very strange compiler bug (?) on MacOS X, using eother the Apple version of gcc-3.1. The following simple code will not compile: #include <boost/multi_array.hpp> namespace strange_namespace { class access { }; } int main() { boost::multi_array<int,2> x(boost::extents[3][3]); int y=x[0][0]; } It fails with the error message src/boost/boost/multi_array/multi_array_ref.hpp: In member function `typename boost::const_multi_array_ref<T, NumDims, T*>::reference boost::multi_array_ref<T, NumDims>::operator[](typename boost::const_multi_array_ref<T, NumDims, T*>::index) [with T = int, long unsigned int NumDims = 2]': test.C:11: instantiated from here src/boost/boost/multi_array/multi_array_ref.hpp:512: no matching function for call to `boost::const_multi_array_ref<int, 2, int*>::access( boost::type<boost::detail::multi_array::sub_array<int, 1> >, index&, int*, const size_type*, const index*, const index*)' src/boost/boost/multi_array/subarray.hpp: In member function `typename boost::detail::multi_array::const_sub_array<T, NumDims, T*>::reference boost::detail::multi_array::sub_array<T, NumDims>::operator[](typename boost::detail::multi_array::const_sub_array<T, NumDims, T*>::index) [with T = int, long unsigned int NumDims = 1]': test.C:11: instantiated from here src/boost/boost/multi_array/subarray.hpp:261: no matching function for call to `boost::detail::multi_array::const_sub_array<int, 1, int*>::access( boost::type<int&>, index&, int*&, const size_type*, const index*, const index*)' This looks like a compiler bug, since the code compiles when removing the class definition access in a completely unrelated namespace. Has something similar been observed before? Does anybody know a workaround? Matthias
participants (1)
-
Matthias Troyer