|
8924 | 8924 |
|
8925 | 8925 | \rSec1[smartptr]{Smart pointers}
|
8926 | 8926 |
|
8927 |
| -\rSec2[unique.ptr]{Class template \tcode{unique_ptr}} |
| 8927 | +\rSec2[unique.ptr]{Unique-ownership pointers} |
8928 | 8928 |
|
8929 | 8929 | \rSec3[unique.ptr.general]{General}
|
8930 | 8930 |
|
|
10161 | 10161 | \tcode{os}.
|
10162 | 10162 | \end{itemdescr}
|
10163 | 10163 |
|
10164 |
| -\rSec2[util.smartptr.weak.bad]{Class \tcode{bad_weak_ptr}}% |
| 10164 | +\rSec2[util.sharedptr]{Shared-ownership pointers} |
| 10165 | + |
| 10166 | +\rSec3[util.smartptr.weak.bad]{Class \tcode{bad_weak_ptr}}% |
10165 | 10167 | \indextext{smart pointers|(}%
|
10166 | 10168 |
|
10167 | 10169 | \indexlibraryglobal{bad_weak_ptr}%
|
|
10190 | 10192 | An \impldef{return value of \tcode{bad_weak_ptr::what}} \ntbs{}.
|
10191 | 10193 | \end{itemdescr}
|
10192 | 10194 |
|
10193 |
| -\rSec2[util.smartptr.shared]{Class template \tcode{shared_ptr}} |
| 10195 | +\rSec3[util.smartptr.shared]{Class template \tcode{shared_ptr}} |
10194 | 10196 |
|
10195 |
| -\rSec3[util.smartptr.shared.general]{General} |
| 10197 | +\rSec4[util.smartptr.shared.general]{General} |
10196 | 10198 |
|
10197 | 10199 | \pnum
|
10198 | 10200 | \indexlibraryglobal{shared_ptr}%
|
|
10317 | 10319 | \tcode{Y*} is convertible to \tcode{T*} or
|
10318 | 10320 | \tcode{Y} is \tcode{U[N]} and \tcode{T} is \cv{}~\tcode{U[]}.
|
10319 | 10321 |
|
10320 |
| -\rSec3[util.smartptr.shared.const]{Constructors} |
| 10322 | +\rSec4[util.smartptr.shared.const]{Constructors} |
10321 | 10323 |
|
10322 | 10324 | \pnum
|
10323 | 10325 | In the constructor definitions below,
|
|
10573 | 10575 | If an exception is thrown, the constructor has no effect.
|
10574 | 10576 | \end{itemdescr}
|
10575 | 10577 |
|
10576 |
| -\rSec3[util.smartptr.shared.dest]{Destructor} |
| 10578 | +\rSec4[util.smartptr.shared.dest]{Destructor} |
10577 | 10579 |
|
10578 | 10580 | \indexlibrarydtor{shared_ptr}%
|
10579 | 10581 | \begin{itemdecl}
|
|
10607 | 10609 | than its previous value.
|
10608 | 10610 | \end{note}
|
10609 | 10611 |
|
10610 |
| -\rSec3[util.smartptr.shared.assign]{Assignment} |
| 10612 | +\rSec4[util.smartptr.shared.assign]{Assignment} |
10611 | 10613 |
|
10612 | 10614 | \indexlibrarymember{operator=}{shared_ptr}%
|
10613 | 10615 | \begin{itemdecl}
|
|
10672 | 10674 | \tcode{*this}.
|
10673 | 10675 | \end{itemdescr}
|
10674 | 10676 |
|
10675 |
| -\rSec3[util.smartptr.shared.mod]{Modifiers} |
| 10677 | +\rSec4[util.smartptr.shared.mod]{Modifiers} |
10676 | 10678 |
|
10677 | 10679 | \indexlibrarymember{swap}{shared_ptr}%
|
10678 | 10680 | \begin{itemdecl}
|
|
10730 | 10732 | Equivalent to \tcode{shared_ptr(p, d, a).swap(*this)}.
|
10731 | 10733 | \end{itemdescr}
|
10732 | 10734 |
|
10733 |
| -\rSec3[util.smartptr.shared.obs]{Observers} |
| 10735 | +\rSec4[util.smartptr.shared.obs]{Observers} |
10734 | 10736 | \indexlibrarymember{get}{shared_ptr}%
|
10735 | 10737 | \begin{itemdecl}
|
10736 | 10738 | element_type* get() const noexcept;
|
|
10886 | 10888 |
|
10887 | 10889 | \end{itemdescr}
|
10888 | 10890 |
|
10889 |
| -\rSec3[util.smartptr.shared.create]{Creation} |
| 10891 | +\rSec4[util.smartptr.shared.create]{Creation} |
10890 | 10892 |
|
10891 | 10893 | \pnum
|
10892 | 10894 | The common requirements that apply to all
|
|
11259 | 11261 | \end{example}
|
11260 | 11262 | \end{itemdescr}
|
11261 | 11263 |
|
11262 |
| -\rSec3[util.smartptr.shared.cmp]{Comparison} |
| 11264 | +\rSec4[util.smartptr.shared.cmp]{Comparison} |
11263 | 11265 |
|
11264 | 11266 | \indexlibrarymember{operator==}{shared_ptr}%
|
11265 | 11267 | \begin{itemdecl}
|
|
11317 | 11319 | \end{codeblock}
|
11318 | 11320 | \end{itemdescr}
|
11319 | 11321 |
|
11320 |
| -\rSec3[util.smartptr.shared.spec]{Specialized algorithms} |
| 11322 | +\rSec4[util.smartptr.shared.spec]{Specialized algorithms} |
11321 | 11323 |
|
11322 | 11324 | \indexlibrarymember{swap}{shared_ptr}%
|
11323 | 11325 | \begin{itemdecl}
|
|
11331 | 11333 | Equivalent to \tcode{a.swap(b)}.
|
11332 | 11334 | \end{itemdescr}
|
11333 | 11335 |
|
11334 |
| -\rSec3[util.smartptr.shared.cast]{Casts} |
| 11336 | +\rSec4[util.smartptr.shared.cast]{Casts} |
11335 | 11337 |
|
11336 | 11338 | \indexlibrarymember{static_pointer_cast}{shared_ptr}%
|
11337 | 11339 | \begin{itemdecl}
|
|
11458 | 11460 | \end{note}
|
11459 | 11461 | \end{itemdescr}
|
11460 | 11462 |
|
11461 |
| -\rSec3[util.smartptr.getdeleter]{\tcode{get_deleter}} |
| 11463 | +\rSec4[util.smartptr.getdeleter]{\tcode{get_deleter}} |
11462 | 11464 |
|
11463 | 11465 | \indexlibrarymember{get_deleter}{shared_ptr}%
|
11464 | 11466 | \begin{itemdecl}
|
|
11482 | 11484 | \end{note}
|
11483 | 11485 | \end{itemdescr}
|
11484 | 11486 |
|
11485 |
| -\rSec3[util.smartptr.shared.io]{I/O} |
| 11487 | +\rSec4[util.smartptr.shared.io]{I/O} |
11486 | 11488 |
|
11487 | 11489 | \indexlibrarymember{operator<<}{shared_ptr}%
|
11488 | 11490 | \begin{itemdecl}
|
|
11500 | 11502 | \tcode{os}.
|
11501 | 11503 | \end{itemdescr}
|
11502 | 11504 |
|
11503 |
| -\rSec2[util.smartptr.weak]{Class template \tcode{weak_ptr}} |
| 11505 | +\rSec3[util.smartptr.weak]{Class template \tcode{weak_ptr}} |
11504 | 11506 |
|
11505 |
| -\rSec3[util.smartptr.weak.general]{General} |
| 11507 | +\rSec4[util.smartptr.weak.general]{General} |
11506 | 11508 |
|
11507 | 11509 | \pnum
|
11508 | 11510 | \indexlibraryglobal{weak_ptr}%
|
|
11566 | 11568 | containers. The template parameter \tcode{T} of \tcode{weak_ptr} may be an
|
11567 | 11569 | incomplete type.
|
11568 | 11570 |
|
11569 |
| -\rSec3[util.smartptr.weak.const]{Constructors} |
| 11571 | +\rSec4[util.smartptr.weak.const]{Constructors} |
11570 | 11572 |
|
11571 | 11573 | \indexlibraryctor{weak_ptr}%
|
11572 | 11574 | \begin{itemdecl}
|
|
11629 | 11631 | \tcode{r} is empty, stores a null pointer value, and \tcode{r.use_count() == 0}.
|
11630 | 11632 | \end{itemdescr}
|
11631 | 11633 |
|
11632 |
| -\rSec3[util.smartptr.weak.dest]{Destructor} |
| 11634 | +\rSec4[util.smartptr.weak.dest]{Destructor} |
11633 | 11635 |
|
11634 | 11636 | \indexlibrarydtor{weak_ptr}%
|
11635 | 11637 | \begin{itemdecl}
|
|
11643 | 11645 | effect on the object its stored pointer points to.
|
11644 | 11646 | \end{itemdescr}
|
11645 | 11647 |
|
11646 |
| -\rSec3[util.smartptr.weak.assign]{Assignment} |
| 11648 | +\rSec4[util.smartptr.weak.assign]{Assignment} |
11647 | 11649 |
|
11648 | 11650 | \indexlibrarymember{operator=}{weak_ptr}%
|
11649 | 11651 | \begin{itemdecl}
|
|
11683 | 11685 | \tcode{*this}.
|
11684 | 11686 | \end{itemdescr}
|
11685 | 11687 |
|
11686 |
| -\rSec3[util.smartptr.weak.mod]{Modifiers} |
| 11688 | +\rSec4[util.smartptr.weak.mod]{Modifiers} |
11687 | 11689 | \indexlibrarymember{swap}{weak_ptr}%
|
11688 | 11690 | \begin{itemdecl}
|
11689 | 11691 | void swap(weak_ptr& r) noexcept;
|
|
11706 | 11708 | Equivalent to \tcode{weak_ptr().swap(*this)}.
|
11707 | 11709 | \end{itemdescr}
|
11708 | 11710 |
|
11709 |
| -\rSec3[util.smartptr.weak.obs]{Observers} |
| 11711 | +\rSec4[util.smartptr.weak.obs]{Observers} |
11710 | 11712 | \indexlibrarymember{use_count}{weak_ptr}%
|
11711 | 11713 | \begin{itemdecl}
|
11712 | 11714 | long use_count() const noexcept;
|
|
11763 | 11765 | \end{itemdescr}
|
11764 | 11766 |
|
11765 | 11767 |
|
11766 |
| -\rSec3[util.smartptr.weak.spec]{Specialized algorithms} |
| 11768 | +\rSec4[util.smartptr.weak.spec]{Specialized algorithms} |
11767 | 11769 |
|
11768 | 11770 | \indexlibrarymember{swap}{weak_ptr}%
|
11769 | 11771 | \begin{itemdecl}
|
|
11777 | 11779 | Equivalent to \tcode{a.swap(b)}.
|
11778 | 11780 | \end{itemdescr}
|
11779 | 11781 |
|
11780 |
| -\rSec2[util.smartptr.ownerless]{Class template \tcode{owner_less}} |
| 11782 | +\rSec3[util.smartptr.ownerless]{Class template \tcode{owner_less}} |
11781 | 11783 |
|
11782 | 11784 | \pnum
|
11783 | 11785 | The class template \tcode{owner_less} allows ownership-based mixed comparisons of shared
|
|
11831 | 11833 | \end{itemize}
|
11832 | 11834 | \end{note}
|
11833 | 11835 |
|
11834 |
| -\rSec2[util.smartptr.enab]{Class template \tcode{enable_shared_from_this}} |
| 11836 | +\rSec3[util.smartptr.enab]{Class template \tcode{enable_shared_from_this}} |
11835 | 11837 |
|
11836 | 11838 | \pnum
|
11837 | 11839 | \indexlibraryglobal{enable_shared_from_this}%
|
|
11963 | 11965 | \end{itemdescr}%
|
11964 | 11966 | \indextext{smart pointers|)}
|
11965 | 11967 |
|
11966 |
| -\rSec2[out.ptr.t]{Class template \tcode{out_ptr_t}} |
| 11968 | +\rSec2[smartptr.adapt]{Smart pointer adaptors} |
| 11969 | + |
| 11970 | +\rSec3[out.ptr.t]{Class template \tcode{out_ptr_t}} |
11967 | 11971 |
|
11968 | 11972 | \pnum
|
11969 | 11973 | \tcode{out_ptr_t} is a class template used to adapt types
|
|
12163 | 12167 | \end{note}
|
12164 | 12168 | \end{itemdescr}
|
12165 | 12169 |
|
12166 |
| -\rSec2[out.ptr]{Function template \tcode{out_ptr}} |
| 12170 | +\rSec3[out.ptr]{Function template \tcode{out_ptr}} |
12167 | 12171 |
|
12168 | 12172 | \indexlibraryglobal{out_ptr}%
|
12169 | 12173 | \begin{itemdecl}
|
|
12182 | 12186 | \tcode{out_ptr_t<Smart, P, Args\&\&...>(s, std::forward<Args>(args)...)}
|
12183 | 12187 | \end{itemdescr}
|
12184 | 12188 |
|
12185 |
| -\rSec2[inout.ptr.t]{Class template \tcode{inout_ptr_t}} |
| 12189 | +\rSec3[inout.ptr.t]{Class template \tcode{inout_ptr_t}} |
12186 | 12190 |
|
12187 | 12191 | \pnum
|
12188 | 12192 | \tcode{inout_ptr_t} is a class template used to adapt types
|
|
12401 | 12405 | \end{note}
|
12402 | 12406 | \end{itemdescr}
|
12403 | 12407 |
|
12404 |
| -\rSec2[inout.ptr]{Function template \tcode{inout_ptr}} |
| 12408 | +\rSec3[inout.ptr]{Function template \tcode{inout_ptr}} |
12405 | 12409 |
|
12406 | 12410 | \indexlibraryglobal{inout_ptr}%
|
12407 | 12411 | \begin{itemdecl}
|
|
0 commit comments