|
Boost : |
From: Niels Dekker - mail address until 2008-12-31 (nd_mail_address_valid_until_2008-12-31_at_[hidden])
Date: 2008-06-19 14:35:59
Hi Joe, hi Steven,
Would it be okay to you if we would add support for array types to the
Boost.Swap utility that is located in the sandbox?
I'm asking now, because I wrote an issue, asking the C++ Standards
Committee to add an overload of std::swap for array types. And Howard
Hinnant just mailed me the other day that the issue has reached status
Ready. :-)
LWG issue 809, "std::swap should be overloaded for array types"
http://home.twcny.rr.com/hinnant/cpp_extensions/issues_preview/lwg-active.html#809
Of course, it will still take a while before STL implementations will
actually add such an std::swap overload. It isn't yet part of the
Standard, officially. So I would very much appreciate if boost::swap
would already start supporting array types. And I think it would be
helpful when implementing swap member functions for templates like
boost::value_initialized<T>.
Array support could easily be added to swap/boost/utility/swap.hpp
(http://svn.boost.org/trac/boost/browser/sandbox/swap/boost/utility/swap.hpp),
by overloading boost_swap_impl::swap_impl, as follows:
template<class T, std::size_t N>
void swap_impl(T (& left)[N], T (& right)[N])
{
for (std::size_t i = 0; i < N; ++i)
{
::boost_swap_impl::swap_impl(left[i], right[i]);
}
}
Please tell me what you think. I do have SVN write access, so I wouldn't
mind committing the necessary changes. :-)
Kind regards,
-- Niels Dekker http://www.xs4all.nl/~nd/dekkerware Scientific programmer at LKEB, Leiden University Medical Center
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk