Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.std.c++ > #520

Smart pointer comparison - why a difference?

From Bo Persson<bop@gmb.dk>
Newsgroups comp.std.c++
Subject Smart pointer comparison - why a difference?
Date 2012-05-28 14:53 -0700
Organization unknown
Message-ID <a2i65qF4eeU1@mid.individual.net> (permalink)

Show all headers | View raw


In C++11, operator<  for unique_ptr [unique.ptr.special] is defined as

std::less<CT>()(x.get(), y.get())

where CT is the common_type of the unique_ptr's internal pointer typedefs.


On the other hand, operator<  for shared_ptr [util.smartptr.shared.cmp]
is defined as

std::less<V>()(a.get(), b.get())

"where V is the composite pointer type (5.9) of T* and U*."


What exactly is the difference, and why?


Bo Persson


-- 
[ comp.std.c++ is moderated.  To submit articles, try posting with your ]
[ newsreader.  If that fails, use mailto:std-cpp-submit@vandevoorde.com ]
[              --- Please see the FAQ before posting. ---               ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html                      ]

Back to comp.std.c++ | Previous | NextNext in thread | Find similar


Thread

Smart pointer comparison - why a difference? Bo Persson<bop@gmb.dk> - 2012-05-28 14:53 -0700
  Re: Smart pointer comparison - why a difference? Daniel Krügler<daniel.kruegler@googlemail.com> - 2012-05-29 11:25 -0700

csiph-web