table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::unique_ptr::operator*,std::unique_ptr::operator->(3) | C++ Standard Libary | std::unique_ptr::operator*,std::unique_ptr::operator->(3) | 
NAME¶
std::unique_ptr::operator*,std::unique_ptr::operator-> - std::unique_ptr::operator*,std::unique_ptr::operator->
Synopsis¶
 typename std::add_lvalue_reference<T>::type operator*()
    const (since C++11)
  
   noexcept(noexcept(*std::declval<pointer>())); (1) (constexpr
    since
  
   C++23)
  
   (since C++11)
  
   pointer operator->() const noexcept; (2) (constexpr since
  
   C++23)
  
   operator* and operator-> provide access to the object owned by *this.
  
   The behavior is undefined if get() == nullptr.
  
   These member functions are only provided for unique_ptr for the single
    objects i.e.
  
   the primary template.
Parameters¶
(none)
Return value¶
 1) Returns the object owned by *this, equivalent to *get().
  
   2) Returns a pointer to the object owned by *this, i.e. get().
Exceptions¶
1) May throw if pointer has a throwing operator*.
Notes¶
 The use of std::add_lvalue_reference is to make it possible to
    instantiate
  
   std::unique_ptr<void> since void& isn't allowed in C++ while
  
   std::add_lvalue_reference<void> produces void. See LWG673 for
  details.
Example¶
// Run this code
  
   #include <iostream>
  
   #include <memory>
  
   struct Foo
  
   {
  
   void bar() { std::cout << "Foo::bar\n"; }
  
   };
  
   void f(const Foo&)
  
   {
  
   std::cout << "f(const Foo&)\n";
  
   }
  
   int main()
  
   {
  
   std::unique_ptr<Foo> ptr(new Foo);
  
   ptr->bar();
  
   f(*ptr);
  
   }
Output:¶
 Foo::bar
  
   f(const Foo&)
  
   Defect reports
  
   The following behavior-changing defect reports were applied retroactively to
  
   previously published C++ standards.
  
   DR Applied to Behavior as published Correct behavior
  
   operator* might be potentially-throwing a conditional exception
  
   LWG 2762 C++11 even if specification added
  
   *get() was noexcept
See also¶
 get returns a pointer to the managed object
  
   (public member function)
| 2024.06.10 | http://cppreference.com |