2008/8/18 Christian Larsen <contact@dword.dk>
Roman Elitetroppers skrev:
2008/8/17 Christian Larsen <contact-AT-dword.dk <mailto:contact-AT-dword.dk>>


      class A
      {
      public:
          A(auto_ptr<B>& b1, auto_ptr<B>& b2)

Pass arguments by value here instead of by reference. It's a common idiom that is used to enforce and document the fact that function takes ownership of arguments.

Ah yes, I see. There is of course no indication in this declaration that
the function actually calls release on the pointers. But couldn't it
possibly result in an extra copy being made? (Unless of course it is
optimized away, which I hope it is.)

I guess it could. But I would call it 'move' instead of copy, which is cheap.

Roman.