29 #ifndef _GLIBCXX_PROFILE_FORWARD_LIST
30 #define _GLIBCXX_PROFILE_FORWARD_LIST 1
32 #ifndef __GXX_EXPERIMENTAL_CXX0X__
38 namespace std _GLIBCXX_VISIBILITY(default)
43 template<
typename _Tp,
typename _Alloc = std::allocator<_Tp> >
45 :
public _GLIBCXX_STD_C::forward_list<_Tp, _Alloc>
47 typedef _GLIBCXX_STD_C::forward_list<_Tp, _Alloc>
_Base;
50 typedef typename _Base::size_type size_type;
63 :
_Base(std::move(__list), __al)
72 const _Alloc& __al = _Alloc())
73 :
_Base(__n, __value, __al)
76 template<
typename _InputIterator>
77 forward_list(_InputIterator __first, _InputIterator __last,
78 const _Alloc& __al = _Alloc())
79 :
_Base(__first, __last, __al)
87 :
_Base(std::move(__list)) { }
90 const _Alloc& __al = _Alloc())
100 static_cast<_Base&
>(*this) = __list;
117 static_cast<_Base&
>(*this) = __il;
122 _M_base() {
return *
this; }
125 _M_base()
const {
return *
this; }
128 template<
typename _Tp,
typename _Alloc>
132 {
return __lx._M_base() == __ly._M_base(); }
134 template<
typename _Tp,
typename _Alloc>
136 operator<(const forward_list<_Tp, _Alloc>& __lx,
138 {
return __lx._M_base() < __ly._M_base(); }
140 template<
typename _Tp,
typename _Alloc>
142 operator!=(
const forward_list<_Tp, _Alloc>& __lx,
143 const forward_list<_Tp, _Alloc>& __ly)
144 {
return !(__lx == __ly); }
147 template<
typename _Tp,
typename _Alloc>
151 {
return (__ly < __lx); }
154 template<
typename _Tp,
typename _Alloc>
158 {
return !(__lx < __ly); }
161 template<
typename _Tp,
typename _Alloc>
163 operator<=(const forward_list<_Tp, _Alloc>& __lx,
165 {
return !(__ly < __lx); }
168 template<
typename _Tp,
typename _Alloc>
177 #endif // __GXX_EXPERIMENTAL_CXX0X__