mirror of
https://github.com/boostorg/array.git
synced 2025-06-25 20:11:45 +02:00
Compare commits
45 Commits
svn-branch
...
boost-1.65
Author | SHA1 | Date | |
---|---|---|---|
8f3aea2200 | |||
cef221d8b4 | |||
5d06f1074a | |||
4c27456a43 | |||
16824fe0f1 | |||
0d4fa276f4 | |||
cb4df41bd6 | |||
cd9888316a | |||
ce71078681 | |||
9678f6aa3b | |||
c0b1609ddb | |||
dfeb6bd0a5 | |||
1966dd034b | |||
40c5dae84c | |||
4584f63f01 | |||
2e0052d49f | |||
6ad6249e1c | |||
a73b6fb582 | |||
ba1a2437cf | |||
3db6930a22 | |||
859fb5aa97 | |||
5a97de6f2e | |||
eea368fadf | |||
26edbea113 | |||
9644ee6662 | |||
a603bffc48 | |||
0c8902e8c2 | |||
88868ba0df | |||
99631823f6 | |||
5661b8cd63 | |||
86b069ad0e | |||
3d20bb1310 | |||
e7122b3f20 | |||
4dd2cf1b64 | |||
2e88dc228d | |||
0a4d7e81ef | |||
96d4c5f737 | |||
5a23b06a83 | |||
e85feee293 | |||
b6522b3f60 | |||
3044ab376c | |||
69188c998f | |||
4c5212f5e4 | |||
276cd991f3 | |||
1f8298fb08 |
@ -1,5 +1,19 @@
|
|||||||
|
#~ Copyright Marshall Clow 2013
|
||||||
|
#~ Distributed under the Boost Software License, Version 1.0.
|
||||||
|
#~ (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
using boostbook ;
|
using boostbook ;
|
||||||
|
|
||||||
boostbook standalone
|
boostbook standalone
|
||||||
: array.xml
|
: array.xml
|
||||||
: <xsl:param>boost.root=../../../.. ;
|
: <xsl:param>boost.root=../../../.. ;
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
alias boostdoc
|
||||||
|
: array.xml
|
||||||
|
:
|
||||||
|
:
|
||||||
|
: ;
|
||||||
|
explicit boostdoc ;
|
||||||
|
alias boostrelease ;
|
||||||
|
explicit boostrelease ;
|
||||||
|
@ -77,7 +77,7 @@
|
|||||||
|
|
||||||
<para>Note that this class is suggested to be part of the next
|
<para>Note that this class is suggested to be part of the next
|
||||||
Technical Report, which will extend the C++ Standard (see
|
Technical Report, which will extend the C++ Standard (see
|
||||||
<ulink url="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm">http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</ulink>).</para>
|
<ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1548.htm">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</ulink>).</para>
|
||||||
|
|
||||||
<para>Update: <code>std::array</code> is (as of C++11) part of the C++ standard.
|
<para>Update: <code>std::array</code> is (as of C++11) part of the C++ standard.
|
||||||
The differences between <code>boost::array</code> and <code>std::array</code> are minimal.
|
The differences between <code>boost::array</code> and <code>std::array</code> are minimal.
|
||||||
|
@ -49,7 +49,6 @@
|
|||||||
// Handles broken standard libraries better than <iterator>
|
// Handles broken standard libraries better than <iterator>
|
||||||
#include <boost/detail/iterator.hpp>
|
#include <boost/detail/iterator.hpp>
|
||||||
#include <boost/throw_exception.hpp>
|
#include <boost/throw_exception.hpp>
|
||||||
#include <boost/functional/hash_fwd.hpp>
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
// FIXES for broken compilers
|
// FIXES for broken compilers
|
||||||
@ -83,15 +82,9 @@ namespace boost {
|
|||||||
const_iterator cend() const { return elems+N; }
|
const_iterator cend() const { return elems+N; }
|
||||||
|
|
||||||
// reverse iterator support
|
// reverse iterator support
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||||
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||||
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
|
||||||
// workaround for broken reverse_iterator in VC7
|
|
||||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
|
||||||
reference, iterator, reference> > reverse_iterator;
|
|
||||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
|
||||||
const_reference, iterator, reference> > const_reverse_iterator;
|
|
||||||
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
||||||
value_type, reference, iterator, difference_type> reverse_iterator;
|
value_type, reference, iterator, difference_type> reverse_iterator;
|
||||||
@ -195,7 +188,6 @@ namespace boost {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
|
||||||
template< class T >
|
template< class T >
|
||||||
class array< T, 0 > {
|
class array< T, 0 > {
|
||||||
|
|
||||||
@ -219,15 +211,9 @@ namespace boost {
|
|||||||
const_iterator cend() const { return cbegin(); }
|
const_iterator cend() const { return cbegin(); }
|
||||||
|
|
||||||
// reverse iterator support
|
// reverse iterator support
|
||||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||||
typedef std::reverse_iterator<iterator> reverse_iterator;
|
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||||
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||||
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
|
||||||
// workaround for broken reverse_iterator in VC7
|
|
||||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
|
||||||
reference, iterator, reference> > reverse_iterator;
|
|
||||||
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
|
||||||
const_reference, iterator, reference> > const_reverse_iterator;
|
|
||||||
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
||||||
value_type, reference, iterator, difference_type> reverse_iterator;
|
value_type, reference, iterator, difference_type> reverse_iterator;
|
||||||
@ -332,7 +318,6 @@ namespace boost {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
|
|
||||||
// comparisons
|
// comparisons
|
||||||
template<class T, std::size_t N>
|
template<class T, std::size_t N>
|
||||||
@ -388,7 +373,7 @@ namespace boost {
|
|||||||
|
|
||||||
// Specific for boost::array: simply returns its elems data member.
|
// Specific for boost::array: simply returns its elems data member.
|
||||||
template <typename T, std::size_t N>
|
template <typename T, std::size_t N>
|
||||||
typename const detail::c_array<T,N>::type& get_c_array(const boost::array<T,N>& arg)
|
typename detail::c_array<T,N>::type const& get_c_array(const boost::array<T,N>& arg)
|
||||||
{
|
{
|
||||||
return arg.elems;
|
return arg.elems;
|
||||||
}
|
}
|
||||||
@ -426,6 +411,7 @@ namespace boost {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
template <class It> std::size_t hash_range(It, It);
|
||||||
|
|
||||||
template<class T, std::size_t N>
|
template<class T, std::size_t N>
|
||||||
std::size_t hash_value(const array<T,N>& arr)
|
std::size_t hash_value(const array<T,N>& arr)
|
||||||
|
17
meta/libraries.json
Normal file
17
meta/libraries.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"key": "array",
|
||||||
|
"name": "Array",
|
||||||
|
"authors": [
|
||||||
|
"Nicolai Josuttis"
|
||||||
|
],
|
||||||
|
"description": "STL compliant container wrapper for arrays of constant size.",
|
||||||
|
"std": [
|
||||||
|
"tr1"
|
||||||
|
],
|
||||||
|
"category": [
|
||||||
|
"Containers"
|
||||||
|
],
|
||||||
|
"maintainers": [
|
||||||
|
"Marshall Clow <marshall -at- idio.com>"
|
||||||
|
]
|
||||||
|
}
|
@ -32,12 +32,11 @@ BOOST_AUTO_TEST_CASE( test_main )
|
|||||||
constexpr int three = arr.at (3);
|
constexpr int three = arr.at (3);
|
||||||
int whatever [ arr.at(4) ];
|
int whatever [ arr.at(4) ];
|
||||||
(void)three;
|
(void)three;
|
||||||
(void) whatever;
|
(void) whatever;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // no constexpr means no constexpr tests!
|
#else // no constexpr means no constexpr tests!
|
||||||
BOOST_AUTO_TEST_CASE( test_main )
|
BOOST_AUTO_TEST_CASE( test_main )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ namespace {
|
|||||||
typedef T arr[5];
|
typedef T arr[5];
|
||||||
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
test_type test_case; // = { 1, 1, 2, 3, 5 };
|
||||||
|
|
||||||
T &aRef = std::get<5> ( test_case ); // should fail to compile
|
T &aRef = std::get<5> ( test_case ); // should fail to compile
|
||||||
BOOST_CHECK ( &*test_case.begin () == &aRef );
|
BOOST_CHECK ( &*test_case.begin () == &aRef );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -44,7 +44,6 @@ BOOST_AUTO_TEST_CASE( test_main )
|
|||||||
RunStdTests< long double >();
|
RunStdTests< long double >();
|
||||||
RunStdTests< std::string >();
|
RunStdTests< std::string >();
|
||||||
#else
|
#else
|
||||||
BOOST_STATIC_ASSERT ( false ); // fail on C++03 systems.
|
BOOST_STATIC_ASSERT ( false ); // fail on C++03 systems.
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user