Skip to content

[util.sharedptr] Dissolve subclause and integrate contents into parent. #1814

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Nov 22, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 24 additions & 29 deletions source/utilities.tex
Original file line number Diff line number Diff line change
Expand Up @@ -9041,9 +9041,7 @@
\end{itemdescr}

\indextext{smart pointers|(}%
\rSec2[util.smartptr]{Shared-ownership pointers}

\rSec3[util.smartptr.weak.bad]{Class \tcode{bad_weak_ptr}}
\rSec2[util.smartptr.weak.bad]{Class \tcode{bad_weak_ptr}}
\indexlibrary{\idxcode{bad_weak_ptr}}%
\begin{codeblock}
namespace std {
Expand All @@ -9070,7 +9068,7 @@

\end{itemdescr}

\rSec3[util.smartptr.shared]{Class template \tcode{shared_ptr}}
\rSec2[util.smartptr.shared]{Class template \tcode{shared_ptr}}

\pnum
\indexlibrary{\idxcode{shared_ptr}}%
Expand Down Expand Up @@ -9180,14 +9178,14 @@
reflect modifications that can introduce data races.

\pnum
For the purposes of subclause \ref{util.smartptr},
For the purposes of subclause \ref{smartptr},
a pointer type \tcode{Y*} is said to be
\defnx{compatible with}{compatible with!\idxcode{shared_ptr}}
a pointer type \tcode{T*} when either
\tcode{Y*} is convertible to \tcode{T*} or
\tcode{Y} is \tcode{U[N]} and \tcode{T} is \cv{}~\tcode{U[]}.

\rSec4[util.smartptr.shared.const]{\tcode{shared_ptr} constructors}
\rSec3[util.smartptr.shared.const]{\tcode{shared_ptr} constructors}

\pnum
In the constructor definitions below,
Expand Down Expand Up @@ -9395,7 +9393,7 @@
If an exception is thrown, the constructor has no effect.
\end{itemdescr}

\rSec4[util.smartptr.shared.dest]{\tcode{shared_ptr} destructor}
\rSec3[util.smartptr.shared.dest]{\tcode{shared_ptr} destructor}

\indexlibrary{\idxcode{shared_ptr}!destructor}%
\begin{itemdecl}
Expand Down Expand Up @@ -9426,7 +9424,7 @@
\tcode{*this} will report a \tcode{use_count()} that is one less
than its previous value. \end{note}

\rSec4[util.smartptr.shared.assign]{\tcode{shared_ptr} assignment}
\rSec3[util.smartptr.shared.assign]{\tcode{shared_ptr} assignment}

\indexlibrarymember{operator=}{shared_ptr}%
\begin{itemdecl}
Expand Down Expand Up @@ -9481,9 +9479,7 @@
\returns \tcode{*this}.
\end{itemdescr}



\rSec4[util.smartptr.shared.mod]{\tcode{shared_ptr} modifiers}
\rSec3[util.smartptr.shared.mod]{\tcode{shared_ptr} modifiers}

\indexlibrarymember{swap}{shared_ptr}%
\begin{itemdecl}
Expand Down Expand Up @@ -9532,7 +9528,7 @@
\effects Equivalent to \tcode{shared_ptr(p, d, a).swap(*this)}.
\end{itemdescr}

\rSec4[util.smartptr.shared.obs]{\tcode{shared_ptr} observers}
\rSec3[util.smartptr.shared.obs]{\tcode{shared_ptr} observers}
\indexlibrarymember{get}{shared_ptr}%
\begin{itemdecl}
element_type* get() const noexcept;
Expand Down Expand Up @@ -9651,8 +9647,7 @@

\end{itemdescr}


\rSec4[util.smartptr.shared.create]{\tcode{shared_ptr} creation}
\rSec3[util.smartptr.shared.create]{\tcode{shared_ptr} creation}

\pnum
The common requirements that apply to
Expand Down Expand Up @@ -9923,7 +9918,7 @@
\end{example}
\end{itemdescr}

\rSec4[util.smartptr.shared.cmp]{\tcode{shared_ptr} comparison}
\rSec3[util.smartptr.shared.cmp]{\tcode{shared_ptr} comparison}

\indexlibrarymember{operator==}{shared_ptr}%
\begin{itemdecl}
Expand Down Expand Up @@ -10045,7 +10040,7 @@
The second function template returns \tcode{!(nullptr < a)}.
\end{itemdescr}

\rSec4[util.smartptr.shared.spec]{\tcode{shared_ptr} specialized algorithms}
\rSec3[util.smartptr.shared.spec]{\tcode{shared_ptr} specialized algorithms}

\indexlibrarymember{swap}{shared_ptr}%
\begin{itemdecl}
Expand All @@ -10057,7 +10052,7 @@
\pnum\effects Equivalent to \tcode{a.swap(b)}.
\end{itemdescr}

\rSec4[util.smartptr.shared.cast]{\tcode{shared_ptr} casts}
\rSec3[util.smartptr.shared.cast]{\tcode{shared_ptr} casts}

\indexlibrarymember{static_pointer_cast}{shared_ptr}%
\begin{itemdecl}
Expand Down Expand Up @@ -10163,7 +10158,7 @@
\end{note}
\end{itemdescr}

\rSec4[util.smartptr.getdeleter]{\tcode{get_deleter}}
\rSec3[util.smartptr.getdeleter]{\tcode{get_deleter}}

\indexlibrarymember{get_deleter}{shared_ptr}%
\begin{itemdecl}
Expand All @@ -10182,7 +10177,7 @@
\tcode{p} have been destroyed. \end{note}
\end{itemdescr}

\rSec4[util.smartptr.shared.io]{\tcode{shared_ptr} I/O}
\rSec3[util.smartptr.shared.io]{\tcode{shared_ptr} I/O}

\indexlibrarymember{operator<<}{shared_ptr}%
\begin{itemdecl}
Expand All @@ -10196,7 +10191,7 @@
\pnum\returns \tcode{os}.
\end{itemdescr}

\rSec3[util.smartptr.weak]{Class template \tcode{weak_ptr}}
\rSec2[util.smartptr.weak]{Class template \tcode{weak_ptr}}

\pnum
\indexlibrary{\idxcode{weak_ptr}}%
Expand Down Expand Up @@ -10264,7 +10259,7 @@
containers. The template parameter \tcode{T} of \tcode{weak_ptr} may be an
incomplete type.

\rSec4[util.smartptr.weak.const]{\tcode{weak_ptr} constructors}
\rSec3[util.smartptr.weak.const]{\tcode{weak_ptr} constructors}

\indexlibrary{\idxcode{weak_ptr}!constructor}%
\begin{itemdecl}
Expand Down Expand Up @@ -10312,7 +10307,7 @@
\tcode{r} shall be empty. \tcode{r.use_count() == 0}.
\end{itemdescr}

\rSec4[util.smartptr.weak.dest]{\tcode{weak_ptr} destructor}
\rSec3[util.smartptr.weak.dest]{\tcode{weak_ptr} destructor}

\indexlibrary{\idxcode{weak_ptr}!destructor}%
\begin{itemdecl}
Expand All @@ -10324,7 +10319,7 @@
effect on the object its stored pointer points to.
\end{itemdescr}

\rSec4[util.smartptr.weak.assign]{\tcode{weak_ptr} assignment}
\rSec3[util.smartptr.weak.assign]{\tcode{weak_ptr} assignment}

\indexlibrarymember{operator=}{weak_ptr}%
\begin{itemdecl}
Expand Down Expand Up @@ -10354,7 +10349,7 @@
\pnum\returns \tcode{*this}.
\end{itemdescr}

\rSec4[util.smartptr.weak.mod]{\tcode{weak_ptr} modifiers}
\rSec3[util.smartptr.weak.mod]{\tcode{weak_ptr} modifiers}
\indexlibrarymember{swap}{weak_ptr}%
\begin{itemdecl}
void swap(weak_ptr& r) noexcept;
Expand All @@ -10373,7 +10368,7 @@
\pnum\effects Equivalent to \tcode{weak_ptr().swap(*this)}.
\end{itemdescr}

\rSec4[util.smartptr.weak.obs]{\tcode{weak_ptr} observers}
\rSec3[util.smartptr.weak.obs]{\tcode{weak_ptr} observers}
\indexlibrarymember{use_count}{weak_ptr}%
\begin{itemdecl}
long use_count() const noexcept;
Expand Down Expand Up @@ -10425,7 +10420,7 @@
\end{itemdescr}


\rSec4[util.smartptr.weak.spec]{\tcode{weak_ptr} specialized algorithms}
\rSec3[util.smartptr.weak.spec]{\tcode{weak_ptr} specialized algorithms}

\indexlibrarymember{swap}{weak_ptr}%
\begin{itemdecl}
Expand All @@ -10437,7 +10432,7 @@
\pnum\effects Equivalent to \tcode{a.swap(b)}.
\end{itemdescr}

\rSec3[util.smartptr.ownerless]{Class template \tcode{owner_less}}
\rSec2[util.smartptr.ownerless]{Class template \tcode{owner_less}}

\pnum
The class template \tcode{owner_less} allows ownership-based mixed comparisons of shared
Expand Down Expand Up @@ -10488,7 +10483,7 @@
both empty.
\end{itemize} \end{note}

\rSec3[util.smartptr.enab]{Class template \tcode{enable_shared_from_this}}
\rSec2[util.smartptr.enab]{Class template \tcode{enable_shared_from_this}}

\pnum
\indexlibrary{\idxcode{enable_shared_from_this}}%
Expand Down Expand Up @@ -10578,7 +10573,7 @@
\pnum\returns \tcode{weak_this}.
\end{itemdescr}

\rSec3[util.smartptr.hash]{Smart pointer hash support}
\rSec2[util.smartptr.hash]{Smart pointer hash support}

\indexlibrary{\idxcode{hash}!\idxcode{unique_ptr}}%
\begin{itemdecl}
Expand Down
3 changes: 3 additions & 0 deletions source/xrefdelta.tex
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,8 @@
\movedxref{array.fill}{array.members}
\movedxref{array.swap}{array.members}

% Contents of [util.smartptr] was integrated into the parent.
\removedxref{util.smartptr}

% Deprecated features.
%\deprxref{old.label} (if moved to depr.old.label, otherwise use \movedxref)