---
name: "std::shared_future"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::shared_future"
---

# std::shared\_future(3)

Primary template for shared\_future.

## NAME

std::shared\_future\< \_Res \> - Primary template for shared\_future.

## SYNOPSIS

\#include \<future\>

Inherits **std::\_\_basic\_future\< \_Res \>**.

### Public Member Functions

**shared\_future** (const shared\_future &\_\_sf) noexcept\
 Copy constructor.  **shared\_future** (**future**\< \_Res \> &&\_\_uf) noexcept\
 Construct from a future rvalue.  **shared\_future** (shared\_future &&\_\_sf) noexcept\
 Construct from a shared\_future rvalue.  const \_Res & **get** () const\
 Retrieving the value.  shared\_future & **operator=** (const shared\_future &\_\_sf) noexcept\
 shared\_future & **operator=** (shared\_future &&\_\_sf) noexcept\
 bool **valid** () const noexcept\
 void **wait** () const\
 template\<typename \_Rep, typename \_Period\> **future\_status** **wait\_for** (const **chrono::duration**\< \_Rep, \_Period \> &\_\_rel) const\
 template\<typename \_Clock, typename \_Duration\> **future\_status** **wait\_until** (const **chrono::time\_point**\< \_Clock, \_Duration \> &\_\_abs) const\

### Protected Types

typedef \_\_future\_base::\_Result\< \_Res \> & **\_\_result\_type**\
 typedef **shared\_ptr**\< \_State\_base \> **\_\_state\_type**\

### Protected Member Functions

\_\_result\_type **\_M\_get\_result** () const\
 Wait for the state to be ready and rethrow any stored exception.  void **\_M\_swap** (\_\_basic\_future &\_\_that) noexcept\

## Detailed Description

### template\<typename \_Res\>

class std::shared\_future\< \_Res \>"Primary template for shared\_future.

## Constructor & Destructor Documentation

### template\<typename \_Res\> std::shared\_future\< \_Res \>::shared\_future (const shared\_future\< \_Res \> & \_\_sf) \[inline\], \[noexcept\]

Copy constructor.

### template\<typename \_Res\> std::shared\_future\< \_Res \>::shared\_future (future\< \_Res \> && \_\_uf) \[inline\], \[noexcept\]

Construct from a future rvalue.

References **std::move()**.

### template\<typename \_Res\> std::shared\_future\< \_Res \>::shared\_future (shared\_future\< \_Res \> && \_\_sf) \[inline\], \[noexcept\]

Construct from a shared\_future rvalue.

References **std::move()**.

## Member Function Documentation

### template\<typename \_Res\> \_\_result\_type std::\_\_basic\_future\< \_Res \>::\_M\_get\_result () const \[inline\], \[protected\], \[inherited\]

Wait for the state to be ready and rethrow any stored exception.

Referenced by **std::future\< \_Res \>::get()**, and **std::shared\_future\< \_Res \>::get()**.

### template\<typename \_Res\> const \_Res & std::shared\_future\< \_Res \>::get () const \[inline\]

Retrieving the value.

References **std::\_\_basic\_future\< \_Res \>::\_M\_get\_result()**.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
