[multi_array] Undocumented boost::copy_n in multi_array/algorithm.hpp

In a project of mine I use a (global) copy_n function template (that copies the first n elements of one sequence to another). When I tried using my copy_n with an iterator returned by multi_array<..>::begin, I got some unexpected argument mismatches. It turned out that multi_array/algorithm.hpp defines an undocumented boost::copy_n function template (with a different argument order than my own copy_n), which was selected instead of my own copy_n due to ADL. I'm not sure this is a "bug", but it seems to me that this boost::copy_n should either be documented, or placed in boost::detail so it won't conflict with user defined copy_n's (like it did in my case). Regards, Eelis

On Dec 31, 2004, at 9:59 PM, Eelis van der Weegen wrote:
In a project of mine I use a (global) copy_n function template (that copies the first n elements of one sequence to another). When I tried using my copy_n with an iterator returned by multi_array<..>::begin, I got some unexpected argument mismatches. It turned out that multi_array/algorithm.hpp defines an undocumented boost::copy_n function template (with a different argument order than my own copy_n), which was selected instead of my own copy_n due to ADL.
I'm not sure this is a "bug", but it seems to me that this boost::copy_n should either be documented, or placed in boost::detail so it won't conflict with user defined copy_n's (like it did in my case).
Regards,
Eelis
Greetings, Yes, that was an oversight on my part. copy_n has now been moved into the detail namespace. Thanks for catching that. Cheers, ron
participants (2)
-
Eelis van der Weegen
-
Ronald Garcia