1 #ifndef ORG_OMG_DDS_CORE_ARRAY_HPP_ 2 #define ORG_OMG_DDS_CORE_ARRAY_HPP_ 15 template <
typename T>
typename T::iterator
begin(T& t) {
19 template <
typename T>
typename T::iterator
end(T& t) {
23 template <
typename T>
typename T::const_iterator
begin(
const T& t) {
27 template <
typename T>
typename T::const_iterator
end(
const T& t) {
46 template<
typename _Tp, std::
size_t _Nm>
147 std::__throw_out_of_range(__N(
"array::at"));
155 std::__throw_out_of_range(__N(
"array::at"));
169 {
return _Nm ? *(
end() - 1) : *
end(); }
173 {
return _Nm ? *(
end() - 1) : *
end(); }
185 template<
typename _Tp, std::
size_t _Nm>
188 {
return std::equal(__one.
begin(), __one.
end(), __two.
begin()); }
190 template<
typename _Tp, std::
size_t _Nm>
193 {
return !(__one == __two); }
195 template<
typename _Tp, std::
size_t _Nm>
199 return std::lexicographical_compare(__a.begin(), __a.end(),
200 __b.begin(), __b.end());
203 template<
typename _Tp, std::
size_t _Nm>
206 {
return __two < __one; }
208 template<
typename _Tp, std::
size_t _Nm>
211 {
return !(__one > __two); }
213 template<
typename _Tp, std::
size_t _Nm>
216 {
return !(__one < __two); }
219 template<std::
size_t _Int,
typename _Tp>
222 template<
typename _Tp, std::
size_t _Nm>
224 {
static const std::size_t
value = _Nm; };
226 template<
typename _Tp, std::
size_t _Nm>
228 tuple_size<array<_Tp, _Nm> >
::value;
230 template<std::
size_t _Int,
typename _Tp, std::
size_t _Nm>
234 template<std::
size_t _Int,
typename _Tp, std::
size_t _Nm>
237 {
return __arr[_Int]; }
239 template<std::
size_t _Int,
typename _Tp, std::
size_t _Nm>
242 {
return __arr[_Int]; }