Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::unique_ptr<T,Deleter>::swap

      From cppreference.com
      <cpp‎ |memory‎ |unique ptr
       
       
      Memory management library
      (exposition only*)
      Allocators
      Uninitialized memory algorithms
      Constrained uninitialized memory algorithms
      Memory resources
      Uninitialized storage(until C++20)
      (until C++20*)
      (until C++20*)
      Garbage collector support(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
      (C++11)(until C++23)
       
       
      void swap( unique_ptr& other)noexcept;
      (since C++11)

      Swaps the managed objects and associated deleters of*this and anotherunique_ptr objectother.

      [edit]Parameters

      other - anotherunique_ptr object to swap the managed object and the deleter with

      [edit]Return value

      (none)

      [edit]Example

      Run this code
      #include <iostream>#include <memory> struct Foo{    Foo(int _val): val(_val){std::cout<<"Foo...\n";}    ~Foo(){std::cout<<"~Foo...\n";}int val;}; int main(){std::unique_ptr<Foo> up1(new Foo(1));std::unique_ptr<Foo> up2(new Foo(2));     up1.swap(up2); std::cout<<"up1->val:"<< up1->val<<'\n';std::cout<<"up2->val:"<< up2->val<<'\n';}

      Output:

      Foo...Foo...up1->val:2up2->val:1~Foo...~Foo...
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/memory/unique_ptr/swap&oldid=153947"

      [8]ページ先頭

      ©2009-2025 Movatter.jp