Merged Array changes to release

[SVN r63410]
This commit is contained in:
Marshall Clow
2010-06-28 17:59:21 +00:00
parent 0c8902e8c2
commit a603bffc48
2 changed files with 42 additions and 5 deletions

View File

@ -346,6 +346,38 @@ namespace boost {
x.swap(y); x.swap(y);
} }
// Specific for boost::array: simply returns its elems data member.
template <typename T, std::size_t N>
T(&get_c_array(boost::array<T,N>& arg))[N]
{
return arg.elems;
}
// Const version.
template <typename T, std::size_t N>
const T(&get_c_array(const boost::array<T,N>& arg))[N]
{
return arg.elems;
}
#if 0
// Overload for std::array, assuming that std::array will have
// explicit conversion functions as discussed at the WG21 meeting
// in Summit, March 2009.
template <typename T, std::size_t N>
T(&get_c_array(std::array<T,N>& arg))[N]
{
return static_cast<T(&)[N]>(arg);
}
// Const version.
template <typename T, std::size_t N>
const T(&get_c_array(const std::array<T,N>& arg))[N]
{
return static_cast<T(&)[N]>(arg);
}
#endif
} /* namespace boost */ } /* namespace boost */

View File

@ -5,6 +5,11 @@
* http://www.boost.org/LICENSE_1_0.txt) * http://www.boost.org/LICENSE_1_0.txt)
*/ */
#ifndef _SCL_SECURE_NO_WARNINGS
// Suppress warnings from the std lib:
# define _SCL_SECURE_NO_WARNINGS
#endif
#include <algorithm> #include <algorithm>
#include <functional> #include <functional>
#include <boost/array.hpp> #include <boost/array.hpp>