Fix elems for Sun compilers

[SVN r66154]
This commit is contained in:
Marshall Clow
2010-10-23 19:11:16 +00:00
parent 2595eda739
commit 38217688e1

View File

@ -346,7 +346,8 @@ namespace boost {
x.swap(y); x.swap(y);
} }
// Specific for boost::array: simply returns its elems data member. #if 0
// Specific for boost::array: simply returns its elems data member.
template <typename T, std::size_t N> template <typename T, std::size_t N>
T(&get_c_array(boost::array<T,N>& arg))[N] T(&get_c_array(boost::array<T,N>& arg))[N]
{ {
@ -359,7 +360,29 @@ namespace boost {
{ {
return arg.elems; return arg.elems;
} }
#else
namespace detail {
template <typename T, std::size_t N> struct c_array
{
typedef T type[N];
};
}
// Specific for boost::array: simply returns its elems data member.
template <typename T, std::size_t N>
typename detail::c_array<T,N>::type& get_c_array(boost::array<T,N>& arg)
{
return arg.elems;
}
// Specific for boost::array: simply returns its elems data member.
template <typename T, std::size_t N>
const typename detail::c_array<T,N>::type& get_c_array(const boost::array<T,N>& arg)
{
return arg.elems;
}
#endif
#if 0 #if 0
// Overload for std::array, assuming that std::array will have // Overload for std::array, assuming that std::array will have
// explicit conversion functions as discussed at the WG21 meeting // explicit conversion functions as discussed at the WG21 meeting