This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Default std::list default and move constructors
On 18/07/2017 15:28, Jonathan Wakely wrote:
On 12/07/17 22:12 +0200, François Dumont wrote:
On 05/07/2017 17:22, Jonathan Wakely wrote: I don't think this needs
to be private, because we don't have to worry
about users accessing this member. It's an internal-only type, and the
_M_next and _M_prev members are already public.
It's not internal-only as those members are exposed on std::list
through inheritance. But I agree that consistency is more important
here so I made it public.
Looks like it's only used as a base class of _List_impl, which is
private to std::list, and in the __distance overload. Am I missing
something?
You are right, I had miss this indirection.
Yes, I wanted to manage as much as possible usage of C++11 abi in the
new _List_node_header type.
N.B. the ABI is called "cxx11" not C++11. It's a bad name, I should
have called it something else, but please don't make it worse by
saying "C++11". That ABI is also the default for C++98 so saying
"C++11" just causes more confusion than necessary.
Thanks for clarifying, I was really thinking that cxx11 was C++11 ABI !
OK for trunk with one tiny tweak, while you're already changing the
function ...
@@ -1983,12 +2011,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_GLIBCXX_STD_C::_List_const_iterator<_Tp> __last,
input_iterator_tag)
{
- typedef _GLIBCXX_STD_C::_List_node<size_t> _Sentinel;
+ typedef __detail::_List_node_header _Sentinel;
_GLIBCXX_STD_C::_List_const_iterator<_Tp> __beyond = __last;
++__beyond;
bool __whole = __first == __beyond;
Could you please make __whole const?
Comitted with this additional tiny change.
François