mirror of
https://github.com/boostorg/array.git
synced 2025-07-30 04:37:21 +02:00
Add BOOST_NOEXCEPT as needed to match std::array
This commit is contained in:
@ -72,13 +72,13 @@ namespace boost {
|
|||||||
typedef std::ptrdiff_t difference_type;
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
|
||||||
// iterator support
|
// iterator support
|
||||||
iterator begin() { return elems; }
|
iterator begin() BOOST_NOEXCEPT { return elems; }
|
||||||
const_iterator begin() const { return elems; }
|
const_iterator begin() const BOOST_NOEXCEPT { return elems; }
|
||||||
const_iterator cbegin() const { return elems; }
|
const_iterator cbegin() const BOOST_NOEXCEPT { return elems; }
|
||||||
|
|
||||||
iterator end() { return elems+N; }
|
iterator end() BOOST_NOEXCEPT { return elems+N; }
|
||||||
const_iterator end() const { return elems+N; }
|
const_iterator end() const BOOST_NOEXCEPT { return elems+N; }
|
||||||
const_iterator cend() const { return elems+N; }
|
const_iterator cend() const BOOST_NOEXCEPT { return elems+N; }
|
||||||
|
|
||||||
// reverse iterator support
|
// reverse iterator support
|
||||||
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||||
@ -95,19 +95,19 @@ namespace boost {
|
|||||||
typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
|
typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
reverse_iterator rbegin() { return reverse_iterator(end()); }
|
reverse_iterator rbegin() BOOST_NOEXCEPT { return reverse_iterator(end()); }
|
||||||
const_reverse_iterator rbegin() const {
|
const_reverse_iterator rbegin() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(end());
|
return const_reverse_iterator(end());
|
||||||
}
|
}
|
||||||
const_reverse_iterator crbegin() const {
|
const_reverse_iterator crbegin() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(end());
|
return const_reverse_iterator(end());
|
||||||
}
|
}
|
||||||
|
|
||||||
reverse_iterator rend() { return reverse_iterator(begin()); }
|
reverse_iterator rend() BOOST_NOEXCEPT { return reverse_iterator(begin()); }
|
||||||
const_reverse_iterator rend() const {
|
const_reverse_iterator rend() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(begin());
|
return const_reverse_iterator(begin());
|
||||||
}
|
}
|
||||||
const_reverse_iterator crend() const {
|
const_reverse_iterator crend() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(begin());
|
return const_reverse_iterator(begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -148,9 +148,9 @@ namespace boost {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// size is constant
|
// size is constant
|
||||||
static BOOST_CONSTEXPR size_type size() { return N; }
|
static BOOST_CONSTEXPR size_type size() BOOST_NOEXCEPT { return N; }
|
||||||
static BOOST_CONSTEXPR bool empty() { return false; }
|
static BOOST_CONSTEXPR bool empty() BOOST_NOEXCEPT { return false; }
|
||||||
static BOOST_CONSTEXPR size_type max_size() { return N; }
|
static BOOST_CONSTEXPR size_type max_size() BOOST_NOEXCEPT { return N; }
|
||||||
enum { static_size = N };
|
enum { static_size = N };
|
||||||
|
|
||||||
// swap (note: linear complexity)
|
// swap (note: linear complexity)
|
||||||
@ -160,11 +160,11 @@ namespace boost {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// direct access to data (read-only)
|
// direct access to data (read-only)
|
||||||
const T* data() const { return elems; }
|
const T* data() const BOOST_NOEXCEPT { return elems; }
|
||||||
T* data() { return elems; }
|
T* data() BOOST_NOEXCEPT { return elems; }
|
||||||
|
|
||||||
// use array as C array (direct read/write access to data)
|
// use array as C array (direct read/write access to data)
|
||||||
T* c_array() { return elems; }
|
T* c_array() BOOST_NOEXCEPT { return elems; }
|
||||||
|
|
||||||
// assignment with type conversion
|
// assignment with type conversion
|
||||||
template <typename T2>
|
template <typename T2>
|
||||||
@ -201,13 +201,13 @@ namespace boost {
|
|||||||
typedef std::ptrdiff_t difference_type;
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
|
||||||
// iterator support
|
// iterator support
|
||||||
iterator begin() { return iterator( reinterpret_cast< T * >( this ) ); }
|
iterator begin() BOOST_NOEXCEPT { return iterator( reinterpret_cast< T * >( this ) ); }
|
||||||
const_iterator begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
|
const_iterator begin() const BOOST_NOEXCEPT { return const_iterator( reinterpret_cast< const T * >( this ) ); }
|
||||||
const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
|
const_iterator cbegin() const BOOST_NOEXCEPT { return const_iterator( reinterpret_cast< const T * >( this ) ); }
|
||||||
|
|
||||||
iterator end() { return begin(); }
|
iterator end() BOOST_NOEXCEPT { return begin(); }
|
||||||
const_iterator end() const { return begin(); }
|
const_iterator end() const BOOST_NOEXCEPT { return begin(); }
|
||||||
const_iterator cend() const { return cbegin(); }
|
const_iterator cend() const BOOST_NOEXCEPT { return cbegin(); }
|
||||||
|
|
||||||
// reverse iterator support
|
// reverse iterator support
|
||||||
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
#if !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||||
@ -224,19 +224,19 @@ namespace boost {
|
|||||||
typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
|
typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
reverse_iterator rbegin() { return reverse_iterator(end()); }
|
reverse_iterator rbegin() BOOST_NOEXCEPT { return reverse_iterator(end()); }
|
||||||
const_reverse_iterator rbegin() const {
|
const_reverse_iterator rbegin() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(end());
|
return const_reverse_iterator(end());
|
||||||
}
|
}
|
||||||
const_reverse_iterator crbegin() const {
|
const_reverse_iterator crbegin() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(end());
|
return const_reverse_iterator(end());
|
||||||
}
|
}
|
||||||
|
|
||||||
reverse_iterator rend() { return reverse_iterator(begin()); }
|
reverse_iterator rend() BOOST_NOEXCEPT { return reverse_iterator(begin()); }
|
||||||
const_reverse_iterator rend() const {
|
const_reverse_iterator rend() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(begin());
|
return const_reverse_iterator(begin());
|
||||||
}
|
}
|
||||||
const_reverse_iterator crend() const {
|
const_reverse_iterator crend() const BOOST_NOEXCEPT {
|
||||||
return const_reverse_iterator(begin());
|
return const_reverse_iterator(begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,20 +277,20 @@ namespace boost {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// size is constant
|
// size is constant
|
||||||
static BOOST_CONSTEXPR size_type size() { return 0; }
|
static BOOST_CONSTEXPR size_type size() BOOST_NOEXCEPT { return 0; }
|
||||||
static BOOST_CONSTEXPR bool empty() { return true; }
|
static BOOST_CONSTEXPR bool empty() BOOST_NOEXCEPT { return true; }
|
||||||
static BOOST_CONSTEXPR size_type max_size() { return 0; }
|
static BOOST_CONSTEXPR size_type max_size() BOOST_NOEXCEPT { return 0; }
|
||||||
enum { static_size = 0 };
|
enum { static_size = 0 };
|
||||||
|
|
||||||
void swap (array<T,0>& /*y*/) {
|
void swap (array<T,0>& /*y*/) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// direct access to data (read-only)
|
// direct access to data (read-only)
|
||||||
const T* data() const { return 0; }
|
const T* data() const BOOST_NOEXCEPT { return 0; }
|
||||||
T* data() { return 0; }
|
T* data() BOOST_NOEXCEPT { return 0; }
|
||||||
|
|
||||||
// use array as C array (direct read/write access to data)
|
// use array as C array (direct read/write access to data)
|
||||||
T* c_array() { return 0; }
|
T* c_array() BOOST_NOEXCEPT { return 0; }
|
||||||
|
|
||||||
// assignment with type conversion
|
// assignment with type conversion
|
||||||
template <typename T2>
|
template <typename T2>
|
||||||
|
Reference in New Issue
Block a user