<!doctype html><html lang="en">
 <head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
  <title>P1132R7: out_ptr - a scalable output pointer abstraction</title>
<style data-fill-with="stylesheet">/******************************************************************************
 *                   Style sheet for the W3C specifications                   *
 *
 * Special classes handled by this style sheet include:
 *
 * Indices
 *   - .toc for the Table of Contents (<ol class="toc">)
 *     + <span class="secno"> for the section numbers
 *   - #toc for the Table of Contents (<nav id="toc">)
 *   - ul.index for Indices (<a href="#ref">term</a><span>, in §N.M</span>)
 *   - table.index for Index Tables (e.g. for properties or elements)
 *
 * Structural Markup
 *   - table.data for general data tables
 *     -> use 'scope' attribute, <colgroup>, <thead>, and <tbody> for best results !
 *     -> use <table class='complex data'> for extra-complex tables
 *     -> use <td class='long'> for paragraph-length cell content
 *     -> use <td class='pre'> when manual line breaks/indentation would help readability
 *   - dl.switch for switch statements
 *   - ol.algorithm for algorithms (helps to visualize nesting)
 *   - .figure and .caption (HTML4) and figure and figcaption (HTML5)
 *     -> .sidefigure for right-floated figures
 *   - ins/del
 *     -> ins/del.c### for candidate and proposed changes (amendments)
 *
 * Code
 *   - pre and code
 *
 * Special Sections
 *   - .note       for informative notes             (div, p, span, aside, details)
 *   - .example    for informative examples          (div, p, pre, span)
 *   - .issue      for issues                        (div, p, span)
 *   - .advisement for loud normative statements     (div, p, strong)
 *   - .annoying-warning for spec obsoletion notices (div, aside, details)
 *   - .correction for "candidate corrections"       (div, aside, details, section)
 *   - .addition   for "candidate additions"         (div, aside, details, section)
 *   - .correction.proposed for "proposed corrections" (div, aside, details, section)
 *   - .addition.proposed   for "proposed additions"   (div, aside, details, section)
 *
 * Definition Boxes
 *   - pre.def   for WebIDL definitions
 *   - table.def for tables that define other entities (e.g. CSS properties)
 *   - dl.def    for definition lists that define other entitles (e.g. HTML elements)
 *
 * Numbering
 *   - .secno for section numbers in .toc and headings (<span class='secno'>3.2</span>)
 *   - .marker for source-inserted example/figure/issue numbers (<span class='marker'>Issue 4</span>)
 *   - ::before styled for CSS-generated issue/example/figure numbers:
 *     -> Documents wishing to use this only need to add
 *        figcaption::before,
 *        .caption::before { content: "Figure "  counter(figure) " ";  }
 *        .example::before { content: "Example " counter(example) " "; }
 *        .issue::before   { content: "Issue "   counter(issue) " ";   }
 *
 * Header Stuff (ignore, just don't conflict with these classes)
 *   - .head for the header
 *   - .copyright for the copyright
 *
 * Outdated warning for old specs
 *
 * Miscellaneous
 *   - .overlarge for things that should be as wide as possible, even if
 *     that overflows the body text area. This can be used on an item or
 *     on its container, depending on the effect desired.
 *     Note that this styling basically doesn't help at all when printing,
 *     since A4 paper isn't much wider than the max-width here.
 *     It's better to design things to fit into a narrower measure if possible.
 *
 *   - js-added ToC jump links (see fixup.js)
 *
 ******************************************************************************/

/* color variables included separately for reliability */

/******************************************************************************/
/*                                    Body                                    */
/******************************************************************************/

	html {
	}

	body {
		counter-reset: example figure issue;

		/* Layout */
		max-width: 50em;			  /* limit line length to 50em for readability   */
		margin: 0 auto;				/* center text within page                    */
		padding: 1.6em 1.5em 2em 50px; /* assume 16px font size for downlevel clients */
		padding: 1.6em 1.5em 2em calc(26px + 1.5em); /* leave space for status flag    */

		/* Typography */
		line-height: 1.5;
		font-family: sans-serif;
		widows: 2;
		orphans: 2;
		word-wrap: break-word;
		overflow-wrap: break-word;
		hyphens: auto;

		color: black;
		color: var(--text);
		background: white top left fixed no-repeat;
		background: var(--bg) top left fixed no-repeat;
		background-size: 25px auto;
	}


/******************************************************************************/
/*                         Front Matter & Navigation                          */
/******************************************************************************/

/** Header ********************************************************************/

	div.head { margin-bottom: 1em; }
	div.head hr { border-style: solid; }

	div.head h1 {
		font-weight: bold;
		margin: 0 0 .1em;
		font-size: 220%;
	}

	div.head h2 { margin-bottom: 1.5em;}

/** W3C Logo ******************************************************************/

	.head .logo {
		float: right;
		margin: 0.4rem 0 0.2rem .4rem;
	}

	.head img[src*="logos/W3C"] {
		display: block;
		border: solid #1a5e9a;
		border: solid var(--logo-bg);
		border-width: .65rem .7rem .6rem;
		border-radius: .4rem;
		background: #1a5e9a;
		background: var(--logo-bg);
		color: white;
		color: var(--logo-text);
		font-weight: bold;
	}

	.head a:hover > img[src*="logos/W3C"],
	.head a:focus > img[src*="logos/W3C"] {
		opacity: .8;
	}

	.head a:active > img[src*="logos/W3C"] {
		background: #c00;
		background: var(--logo-active-bg);
		border-color: #c00;
		border-color: var(--logo-active-bg);
	}

	/* see also additional rules in Link Styling section */

/** Copyright *****************************************************************/

	p.copyright,
	p.copyright small { font-size: small; }

/** Back to Top / ToC Toggle **************************************************/

	@media print {
		#toc-nav {
			display: none;
		}
	}
	@media not print {
		#toc-nav {
			position: fixed;
			z-index: 3;
			bottom: 0; left: 0;
			margin: 0;
			min-width: 1.33em;
			border-top-right-radius: 2rem;
			box-shadow: 0 0 2px;
			font-size: 1.5em;
		}
		#toc-nav > a {
			display: block;
			white-space: nowrap;

			height: 1.33em;
			padding: .1em 0.3em;
			margin: 0;

			box-shadow: 0 0 2px;
			border: none;
			border-top-right-radius: 1.33em;

			color: #707070;
			color: var(--tocnav-normal-text);
			background: white;
			background: var(--tocnav-normal-bg);
		}
		#toc-nav > a:hover,
		#toc-nav > a:focus {
			color: black;
			color: var(--tocnav-hover-text);
			background: #f8f8f8;
			background: var(--tocnav-hover-bg);
		}
		#toc-nav > a:active {
			color: #c00;
			color: var(--tocnav-active-text);
			background: white;
			background: var(--tocnav-active-bg);
		}

		#toc-nav > #toc-jump {
			padding-bottom: 2em;
			margin-bottom: -1.9em;
		}

		/* statusbar gets in the way on keyboard focus; remove once browsers fix */
		#toc-nav > a[href="#toc"]:not(:hover):focus:last-child {
			padding-bottom: 1.5rem;
		}

		#toc-nav:not(:hover) > a:not(:focus) > span + span {
			/* Ideally this uses :focus-within on #toc-nav */
			display: none;
		}
		#toc-nav > a > span + span {
			padding-right: 0.2em;
		}
	}

/** ToC Sidebar ***************************************************************/

	/* Floating sidebar */
	@media screen {
		body.toc-sidebar #toc {
			position: fixed;
			top: 0; bottom: 0;
			left: 0;
			width: 23.5em;
			max-width: 80%;
			max-width: calc(100% - 2em - 26px);
			overflow: auto;
			padding: 0 1em;
			padding-left: 42px;
			padding-left: calc(1em + 26px);
			color: black;
			color: var(--tocsidebar-text);
			background: inherit;
			background-color: #f7f8f9;
			background-color: var(--tocsidebar-bg);
			z-index: 1;
			box-shadow: -.1em 0 .25em rgba(0,0,0,.1) inset;
			box-shadow: -.1em 0 .25em var(--tocsidebar-shadow) inset;
		}
		body.toc-sidebar #toc h2 {
			margin-top: .8rem;
			font-variant: small-caps;
			font-variant: all-small-caps;
			text-transform: lowercase;
			font-weight: bold;
			color: gray;
			color: hsla(203,20%,40%,.7);
			color: var(--tocsidebar-heading-text);
		}
		body.toc-sidebar #toc-jump:not(:focus) {
			width: 0;
			height: 0;
			padding: 0;
			position: absolute;
			overflow: hidden;
		}
	}
	/* Hide main scroller when only the ToC is visible anyway */
	@media screen and (max-width: 28em) {
		body.toc-sidebar {
			overflow: hidden;
		}
	}

	/* Sidebar with its own space */
	@media screen and (min-width: 78em) {
		body:not(.toc-inline) #toc {
			position: fixed;
			top: 0; bottom: 0;
			left: 0;
			width: 23.5em;
			overflow: auto;
			padding: 0 1em;
			padding-left: 42px;
			padding-left: calc(1em + 26px);
			color: black;
			color: var(--tocsidebar-text);
			background: inherit;
			background-color: #f7f8f9;
			background-color: var(--tocsidebar-bg);
			z-index: 1;
			box-shadow: -.1em 0 .25em rgba(0,0,0,.1) inset;
			box-shadow: -.1em 0 .25em var(--tocsidebar-shadow) inset;
		}
		body:not(.toc-inline) #toc h2 {
			margin-top: .8rem;
			font-variant: small-caps;
			font-variant: all-small-caps;
			text-transform: lowercase;
			font-weight: bold;
			color: gray;
			color: hsla(203,20%,40%,.7);
			color: var(--tocsidebar-heading-text);
		}

		body:not(.toc-inline) {
			padding-left: 29em;
		}
		/* See also Overflow section at the bottom */

		body:not(.toc-inline) #toc-jump:not(:focus) {
			width: 0;
			height: 0;
			padding: 0;
			position: absolute;
			overflow: hidden;
		}
	}
	@media screen and (min-width: 90em) {
		body:not(.toc-inline) {
			margin: 0 4em;
		}
	}

/******************************************************************************/
/*                                Sectioning                                  */
/******************************************************************************/

/** Headings ******************************************************************/

	h1, h2, h3, h4, h5, h6, dt {
		page-break-after: avoid;
		page-break-inside: avoid;
		font: 100% sans-serif;   /* Reset all font styling to clear out UA styles */
		font-family: inherit;	/* Inherit the font family. */
		line-height: 1.2;		/* Keep wrapped headings compact */
		hyphens: manual;		/* Hyphenated headings look weird */
	}

	h2, h3, h4, h5, h6 {
		margin-top: 3rem;
	}

	h1, h2, h3 {
		color: #005A9C;
		color: var(--heading-text);
	}

	h1 { font-size: 170%; }
	h2 { font-size: 140%; }
	h3 { font-size: 120%; }
	h4 { font-weight: bold; }
	h5 { font-style: italic; }
	h6 { font-variant: small-caps; }
	dt { font-weight: bold; }

/** Subheadings ***************************************************************/

	h1 + h2,
	#subtitle {
		/* #subtitle is a subtitle in an H2 under the H1 */
		margin-top: 0;
	}
	h2 + h3,
	h3 + h4,
	h4 + h5,
	h5 + h6 {
		margin-top: 1.2em; /* = 1 x line-height */
	}

/** Section divider ***********************************************************/

	:not(.head) > :not(.head) + hr {
		font-size: 1.5em;
		text-align: center;
		margin: 1em auto;
		height: auto;
		color: black;
		color: var(--hr-text);
		border: transparent solid 0;
		background: transparent;
	}
	:not(.head) > hr::before {
		content: "\2727\2003\2003\2727\2003\2003\2727";
	}

/******************************************************************************/
/*                            Paragraphs and Lists                            */
/******************************************************************************/

	p {
		margin: 1em 0;
	}

	dd > p:first-child,
	li > p:first-child {
		margin-top: 0;
	}

	ul, ol {
		margin-left: 0;
		padding-left: 2em;
	}

	li {
		margin: 0.25em 0 0.5em;
		padding: 0;
	}

	dl dd {
		margin: 0 0 .5em 2em;
	}

	.head dd + dd { /* compact for header */
		margin-top: -.5em;
	}

	/* Style for algorithms */
	ol.algorithm ol:not(.algorithm),
	.algorithm > ol ol:not(.algorithm) {
	border-left: 0.5em solid #DEF;
	border-left: 0.5em solid var(--algo-border);
	}

	/* Put nice boxes around each algorithm. */
	[data-algorithm]:not(.heading) {
	 padding: .5em;
	 border: thin solid #ddd;
	 border: thin solid var(--algo-border);
	 border-radius: .5em;
	 margin: .5em calc(-0.5em - 1px);
	}
	[data-algorithm]:not(.heading) > :first-child {
	 margin-top: 0;
	}
	[data-algorithm]:not(.heading) > :last-child {
	 margin-bottom: 0;
	}

	/* Style for switch/case <dl>s */
	dl.switch > dd > ol.only,
	dl.switch > dd > .only > ol {
	margin-left: 0;
	}
	dl.switch > dd > ol.algorithm,
	dl.switch > dd > .algorithm > ol {
	margin-left: -2em;
	}
	dl.switch {
	padding-left: 2em;
	}
	dl.switch > dt {
	text-indent: -1.5em;
	margin-top: 1em;
	}
	dl.switch > dt + dt {
	margin-top: 0;
	}
	dl.switch > dt::before {
	content: '\21AA';
	padding: 0 0.5em 0 0;
	display: inline-block;
	width: 1em;
	text-align: right;
	line-height: 0.5em;
	}

/** Terminology Markup ********************************************************/


/******************************************************************************/
/*                                 Inline Markup                              */
/******************************************************************************/

/** Terminology Markup ********************************************************/
	dfn   { /* Defining instance */
		font-weight: bolder;
	}
	a > i { /* Instance of term */
		font-style: normal;
	}
	dt dfn code, code.idl {
		font-size: inherit;
	}
	dfn var {
		font-style: normal;
	}

/** Change Marking ************************************************************/

	del {
		color: #aa0000;
		color: var(--del-text);
		background: transparent;
		background: var(--del-bg);
		text-decoration: line-through;
	}
	ins {
		color: #006100;
		color: var(--ins-text);
		background: transparent;
		background: var(--ins-bg);
		text-decoration: underline;
	}

	/* for amendments (candidate/proposed changes) */

	.amendment ins, .correction ins, .addition ins,
	ins[class^=c] {
		text-decoration-style: dotted;
	}
	.amendment del, .correction del, .addition del,
	del[class^=c] {
		text-decoration-style: dotted;
	}
	.amendment.proposed ins, .correction.proposed ins, .addition.proposed ins,
	ins[class^=c].proposed {
		text-decoration-style: double;
	}
	.amendment.proposed del, .correction.proposed del, .addition.proposed del,
	del[class^=c].proposed {
		text-decoration-style: double;
	}

/** Miscellaneous improvements to inline formatting ***************************/

	sup {
		vertical-align: super;
		font-size: 80%
	}

/******************************************************************************/
/*                                    Code                                    */
/******************************************************************************/

/** General monospace/pre rules ***********************************************/

	pre, code, samp {
		font-family: Menlo, Consolas, "DejaVu Sans Mono", Monaco, monospace;
		font-size: .9em;
		hyphens: none;
		text-transform: none;
		text-align: left;
		text-align: start;
		font-variant: normal;
		orphans: 3;
		widows: 3;
		page-break-before: avoid;
	}
	pre code,
	code code {
		font-size: 100%;
	}

	pre {
		margin-top: 1em;
		margin-bottom: 1em;
		overflow: auto;
	}

/** Inline Code fragments *****************************************************/

	/* Do something nice. */

/******************************************************************************/
/*                                    Links                                   */
/******************************************************************************/

/** General Hyperlinks ********************************************************/

	/* We hyperlink a lot, so make it less intrusive */
	a[href] {
		color: #034575;
		color: var(--a-normal-text);
		text-decoration: none;
		border-bottom: 1px solid #707070;
		border-bottom: 1px solid var(--a-normal-underline);
		/* Need a bit of extending for it to look okay */
		padding: 0 1px 0;
		margin: 0 -1px 0;
	}
	a:visited {
		color: #034575;
		color: var(--a-visited-text);
		border-bottom-color: #bbb;
		border-bottom-color: var(--a-visited-underline);
	}

	/* Use distinguishing colors when user is interacting with the link */
	a[href]:focus,
	a[href]:hover {
		background: #f8f8f8;
		background: rgba(75%, 75%, 75%, .25);
		background: var(--a-hover-bg);
		border-bottom-width: 3px;
		margin-bottom: -2px;
	}
	a[href]:active {
		color: #c00;
		color: var(--a-active-text);
		border-color: #c00;
		border-color: var(--a-active-underline);
	}

	/* Backout above styling for W3C logo */
	.head .logo,
	.head .logo a {
		border: none;
		text-decoration: none;
		background: transparent;
	}

/******************************************************************************/
/*                                    Images                                  */
/******************************************************************************/

	img {
		border-style: none;
	}

	img, svg {
		/* Intentionally not color-scheme aware. */
		background: white;
	}

	/* For autogen numbers, add
	  .caption::before, figcaption::before { content: "Figure " counter(figure) ". "; }
	*/

	figure, .figure, .sidefigure {
		page-break-inside: avoid;
		text-align: center;
		margin: 2.5em 0;
	}
	.figure img,	.sidefigure img,	figure img,
	.figure object, .sidefigure object, figure object {
		max-width: 100%;
		margin: auto;
		height: auto;
	}
	.figure pre, .sidefigure pre, figure pre {
		text-align: left;
		display: table;
		margin: 1em auto;
	}
	.figure table, figure table {
		margin: auto;
	}
	@media screen and (min-width: 20em) {
		.sidefigure {
			float: right;
			width: 50%;
			margin: 0 0 0.5em 0.5em;
		}
	}
	.caption, figcaption, caption {
		font-style: italic;
		font-size: 90%;
	}
	.caption::before, figcaption::before, figcaption > .marker {
		font-weight: bold;
	}
	.caption, figcaption {
		counter-increment: figure;
	}

	/* DL list is indented 2em, but figure inside it is not */
	dd > .figure, dd > figure { margin-left: -2em; }

/******************************************************************************/
/*                             Colored Boxes                                  */
/******************************************************************************/

	.issue, .note, .example, .assertion, .advisement, blockquote,
	.amendment, .correction, .addition {
		margin: 1em auto;
		padding: .5em;
		border: .5em;
		border-left-style: solid;
		page-break-inside: avoid;
	}
	span.issue, span.note {
		padding: .1em .5em .15em;
		border-right-style: solid;
	}

	blockquote > :first-child,
	.note  > p:first-child,
	.issue > p:first-child,
	.amendment > p:first-child,
	.correction > p:first-child,
	.addition > p:first-child {
		margin-top: 0;
	}
	blockquote > :last-child,
	.note  > p:last-child,
	.issue > p:last-child,
	.amendment > p:last-child,
	.correction > p:last-child,
	.addition > p:last-child {
		margin-bottom: 0;
	}


	.issue::before, .issue > .marker,
	.example::before, .example > .marker,
	.note::before, .note > .marker,
	details.note > summary > .marker,
	.amendment::before, .amendment > .marker,
	details.amendment > summary > .marker,
	.addition::before, .addition > .marker,
	addition.amendment > summary > .marker,
	.correction::before, .correction > .marker,
	correction.amendment > summary > .marker
	{
		text-transform: uppercase;
		padding-right: 1em;
	}

	.example::before, .example > .marker {
		display: block;
		padding-right: 0em;
	}

/** Blockquotes ***************************************************************/

	blockquote {
		border-color: silver;
		border-color: var(--blockquote-border);
		background: transparent;
		background: var(--blockquote-bg);
		color: currentcolor;
		color: var(--blockquote-text);
	}

/** Open issue ****************************************************************/

	.issue {
		border-color: #e05252;
		border-color: var(--issue-border);
		background: #fbe9e9;
		background: var(--issue-bg);
		color: black;
		color: var(--issue-text);
		counter-increment: issue;
		overflow: auto;
	}
	.issue::before, .issue > .marker {
		color: #831616;
		color: var(--issueheading-text);
	}
	/* Add .issue::before { content: "Issue " counter(issue) " "; } for autogen numbers,
	  or use class="marker" to mark up the issue number in source. */

/** Example *******************************************************************/

	.example {
		border-color: #e0cb52;
		border-color: var(--example-border);
		background: #fcfaee;
		background: var(--example-bg);
		color: black;
		color: var(--example-text);
		counter-increment: example;
		overflow: auto;
		clear: both;
	}
	.example::before, .example > .marker {
		color: #574b0f;
		color: var(--exampleheading-text);
	}
	/* Add .example::before { content: "Example " counter(example) " "; } for autogen numbers,
	  or use class="marker" to mark up the example number in source. */

/** Non-normative Note ********************************************************/

	.note {
		border-color: #52e052;
		border-color: var(--note-border);
		background: #e9fbe9;
		background: var(--note-bg);
		color: black;
		color: var(--note-text);
		overflow: auto;
	}

	.note::before, .note > .marker,
	details.note > summary {
		color: hsl(120, 70%, 30%);
		color: var(--noteheading-text);
	}
	/* Add .note::before { content: "Note "; } for autogen label,
	  or use class="marker" to mark up the label in source. */

	details.note[open] > summary {
		border-bottom: 1px silver solid;
		border-bottom: 1px var(--notesummary-underline) solid;
	}

/** Assertion Box *************************************************************/
	/*  for assertions in algorithms */

	.assertion {
		border-color: #AAA;
		border-color: var(--assertion-border);
		background: #EEE;
		background: var(--assertion-bg);
		color: black;
		color: var(--assertion-text);
	}

/** Advisement Box ************************************************************/
	/*  for attention-grabbing normative statements */

	.advisement {
		border-color: orange;
		border-color: var(--advisement-border);
		border-style: none solid;
		background: #fec;
		background: var(--advisement-bg);
		color: black;
		color: var(--advisement-text);
	}
	strong.advisement {
		display: block;
		text-align: center;
	}
	.advisement::before, .advisement > .marker {
		color: #b35f00;
		color: var(--advisementheading-text);
	}

/** Amendment Box *************************************************************/

	.amendment, .correction, .addition {
		border-color: #330099;
		border-color: var(--amendment-border);
		background: #F5F0FF;
		background: var(--amendment-bg);
		color: black;
		color: var(--amendment-text);
	}
	.amendment.proposed, .correction.proposed, .addition.proposed {
		border-style: solid;
		border-block-width: 0.25em;
	}
	.amendment::before, .amendment > .marker,
	details.amendment > summary::before, details.amendment > summary > .marker,
	.correction::before, .correction > .marker,
	details.correction > summary::before, details.correction > summary > .marker,
	.addition::before, .addition > .marker,
	details.addition > summary::before, details.addition > summary > .marker {
		color: #220066;
		color: var(--amendmentheading-text);
	}
	.amendment.proposed::before, .amendment.proposed > .marker,
	details.amendment.proposed > summary::before, details.amendment.proposed > summary > .marker,
	.correction.proposed::before, .correction.proposed > .marker,
	details.correction.proposed > summary::before, details.correction.proposed > summary > .marker,
	.addition.proposed::before, .addition.proposed > .marker,
	details.addition.proposed > summary::before, details.addition.proposed > summary > .marker {
		font-weight: bold;
	}

/** Spec Obsoletion Notice ****************************************************/
	/* obnoxious obsoletion notice for older/abandoned specs. */

	details {
		display: block;
	}
	summary {
		font-weight: bolder;
	}

	.annoying-warning:not(details),
	details.annoying-warning:not([open]) > summary,
	details.annoying-warning[open] {
		background: hsla(40,100%,50%,0.95);
		background: var(--warning-bg);
		color: black;
		color: var(--warning-text);
		padding: .75em 1em;
		border: red;
		border: var(--warning-border);
		border-style: solid none;
		box-shadow: 0 2px 8px black;
		text-align: center;
	}
	.annoying-warning :last-child {
		margin-bottom: 0;
	}

@media not print {
	details.annoying-warning[open] {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 2em;
		z-index: 1000;
	}
}

	details.annoying-warning:not([open]) > summary {
		text-align: center;
	}

/** Entity Definition Boxes ***************************************************/

	.def {
		padding: .5em 1em;
		background: #def;
		background: var(--def-bg);
		margin: 1.2em 0;
		border-left: 0.5em solid #8ccbf2;
		border-left: 0.5em solid var(--def-border);
		color: black;
		color: var(--def-text);
	}

/******************************************************************************/
/*                                    Tables                                  */
/******************************************************************************/

	th, td {
		text-align: left;
		text-align: start;
	}

/** Property/Descriptor Definition Tables *************************************/

	table.def {
		/* inherits .def box styling, see above */
		width: 100%;
		border-spacing: 0;
	}

	table.def td,
	table.def th {
		padding: 0.5em;
		vertical-align: baseline;
		border-bottom: 1px solid #bbd7e9;
		border-bottom: 1px solid var(--defrow-border);
	}

	table.def > tbody > tr:last-child th,
	table.def > tbody > tr:last-child td {
		border-bottom: 0;
	}

	table.def th {
		font-style: italic;
		font-weight: normal;
		padding-left: 1em;
		width: 3em;
	}

	/* For when values are extra-complex and need formatting for readability */
	table td.pre {
		white-space: pre-wrap;
	}

	/* A footnote at the bottom of a def table */
	table.def td.footnote {
		padding-top: 0.6em;
	}
	table.def td.footnote::before {
		content: " ";
		display: block;
		height: 0.6em;
		width: 4em;
		border-top: thin solid;
	}

/** Data tables (and properly marked-up index tables) *************************/
	/*
		<table class="data"> highlights structural relationships in a table
		when correct markup is used (e.g. thead/tbody, th vs. td, scope attribute)

		Use class="complex data" for particularly complicated tables --
		(This will draw more lines: busier, but clearer.)

		Use class="long" on table cells with paragraph-like contents
		(This will adjust text alignment accordingly.)
		Alternately use class="longlastcol" on tables, to have the last column assume "long".
	*/

	table {
		word-wrap: normal;
		overflow-wrap: normal;
		hyphens: manual;
	}

	table.data,
	table.index {
		margin: 1em auto;
		border-collapse: collapse;
		border: hidden;
		width: 100%;
	}
	table.data caption,
	table.index caption {
		max-width: 50em;
		margin: 0 auto 1em;
	}

	table.data td,  table.data th,
	table.index td, table.index th {
		padding: 0.5em 1em;
		border-width: 1px;
		border-color: silver;
		border-color: var(--datacell-border);
		border-top-style: solid;
	}

	table.data thead td:empty {
		padding: 0;
		border: 0;
	}

	table.data  thead,
	table.index thead,
	table.data  tbody,
	table.index tbody {
		border-bottom: 2px solid;
	}

	table.data colgroup,
	table.index colgroup {
		border-left: 2px solid;
	}

	table.data  tbody th:first-child,
	table.index tbody th:first-child  {
		border-right: 2px solid;
		border-top: 1px solid silver;
		border-top: 1px solid var(--datacell-border);
		padding-right: 1em;
	}

	table.data th[colspan],
	table.data td[colspan] {
		text-align: center;
	}

	table.complex.data th,
	table.complex.data td {
		border: 1px solid silver;
		border: 1px solid var(--datacell-border);
		text-align: center;
	}

	table.data.longlastcol td:last-child,
	table.data td.long {
		vertical-align: baseline;
		text-align: left;
	}

	table.data img {
		vertical-align: middle;
	}


/*
Alternate table alignment rules

	table.data,
	table.index {
		text-align: center;
	}

	table.data  thead th[scope="row"],
	table.index thead th[scope="row"] {
		text-align: right;
	}

	table.data  tbody th:first-child,
	table.index tbody th:first-child  {
		text-align: right;
	}

Possible extra rowspan handling

	table.data  tbody th[rowspan]:not([rowspan='1']),
	table.index tbody th[rowspan]:not([rowspan='1']),
	table.data  tbody td[rowspan]:not([rowspan='1']),
	table.index tbody td[rowspan]:not([rowspan='1']) {
		border-left: 1px solid silver;
	}

	table.data  tbody th[rowspan]:first-child,
	table.index tbody th[rowspan]:first-child,
	table.data  tbody td[rowspan]:first-child,
	table.index tbody td[rowspan]:first-child{
		border-left: 0;
		border-right: 1px solid silver;
	}
*/

/******************************************************************************/
/*                                  Indices                                   */
/******************************************************************************/


/** Table of Contents *********************************************************/

	.toc a {
		/* More spacing; use padding to make it part of the click target. */
		padding-top: 0.1rem;
		/* Larger, more consistently-sized click target */
		display: block;
		/* Reverse color scheme */
		color: black;
		color: var(--toclink-text);
		border-color: #3980b5;
		border-color: var(--toclink-underline);
	}
	.toc a:visited {
		color: black;
		color: var(--toclink-visited-text);
		border-color: #054572;
		border-color: var(--toclink-visited-underline);
	}
	.toc a:not(:focus):not(:hover) {
		/* Allow colors to cascade through from link styling */
		border-bottom-color: transparent;
	}

	.toc, .toc ol, .toc ul, .toc li {
		list-style: none; /* Numbers must be inlined into source */
		/* because generated content isn't search/selectable and markers can't do multilevel yet */
		margin:  0;
		padding: 0;
	}
	.toc {
		line-height: 1.1em;
	}

	/* ToC not indented until third level, but font style & margins show hierarchy */
	.toc > li			{ font-weight: bold;   }
	.toc > li li		 { font-weight: normal; }
	.toc > li li li	  { font-size:   95%;	}
	.toc > li li li li	{ font-size:   90%;	}
	.toc > li li li li li { font-size:   85%;	}

	/* @supports not (display:grid) { */
		.toc > li			{ margin: 1.5rem 0;	}
		.toc > li li		 { margin: 0.3rem 0;	}
		.toc > li li li	  { margin-left: 2rem;   }

		/* Section numbers in a column of their own */
		.toc .secno {
			float: left;
			width: 4rem;
			white-space: nowrap;
		}
		.toc > li li li li .secno { font-size: 85%; }
		.toc > li li li li li .secno { font-size: 100%; }

		.toc li {
			clear: both;
		}

		:not(li) > .toc			 { margin-left:  5rem; }
		.toc .secno				 { margin-left: -5rem; }
		.toc > li li li .secno	  { margin-left: -7rem; }
		.toc > li li li li .secno	{ margin-left: -9rem; }
		.toc > li li li li li .secno { margin-left: -11rem; }

		/* Tighten up indentation in narrow ToCs */
		@media (max-width: 30em) {
			:not(li) > .toc			 { margin-left:  4rem; }
			.toc .secno				 { margin-left: -4rem; }
			.toc > li li li			 { margin-left:  1rem; }
			.toc > li li li .secno	  { margin-left: -5rem; }
			.toc > li li li li .secno	{ margin-left: -6rem; }
			.toc > li li li li li .secno { margin-left: -7rem; }
		}
		/* Loosen it on wide screens */
		@media screen and (min-width: 78em) {
			body:not(.toc-inline) :not(li) > .toc			 { margin-left:  4rem; }
			body:not(.toc-inline) .toc .secno				 { margin-left: -4rem; }
			body:not(.toc-inline) .toc > li li li			 { margin-left:  1rem; }
			body:not(.toc-inline) .toc > li li li .secno	  { margin-left: -5rem; }
			body:not(.toc-inline) .toc > li li li li .secno	{ margin-left: -6rem; }
			body:not(.toc-inline) .toc > li li li li li .secno { margin-left: -7rem; }
	}
	/* } */

	@supports (display:grid) and (display:contents) {
		/* Use #toc over .toc to override non-@supports rules. */
		#toc {
			display: grid;
			align-content: start;
			grid-template-columns: auto 1fr;
			grid-column-gap: 1rem;
			column-gap: 1rem;
			grid-row-gap: .6rem;
			row-gap: .6rem;
		}
		#toc h2 {
			grid-column: 1 / -1;
			margin-bottom: 0;
		}
		#toc ol,
		#toc li,
		#toc a {
			display: contents;
			/* Switch <a> to subgrid when supported */
		}
		#toc span {
			margin: 0;
		}
		#toc > .toc > li > a > span {
			/* The spans of the top-level list,
			  comprising the first items of each top-level section. */
			margin-top: 1.1rem;
		}
		#toc#toc .secno { /* Ugh, need more specificity to override base.css */
			grid-column: 1;
			width: auto;
			margin-left: 0;
		}
		#toc .content {
			grid-column: 2;
			width: auto;
			margin-right: 1rem;
		}
		#toc .content:hover,
		#toc .content:focus {
			background: rgba(75%, 75%, 75%, .25);
			background: var(--a-hover-bg);
			border-bottom: 3px solid #054572;
			border-bottom: 3px solid var(--toclink-underline);
			margin-bottom: -3px;
		}
		#toc li li li .content {
			margin-left: 1rem;
		}
		#toc li li li li .content {
			margin-left: 2rem;
		}
	}


/** Index *********************************************************************/

	/* Index Lists: Layout */
	ul.index	  { margin-left: 0; columns: 15em; text-indent: 1em hanging; }
	ul.index li	{ margin-left: 0; list-style: none; break-inside: avoid; }
	ul.index li li { margin-left: 1em; }
	ul.index dl	{ margin-top: 0; }
	ul.index dt	{ margin: .2em 0 .2em 20px;}
	ul.index dd	{ margin: .2em 0 .2em 40px;}
	/* Index Lists: Typography */
	ul.index ul,
	ul.index dl { font-size: smaller; }
	@media not print {
		ul.index li span:not(.dfn-paneled) {
			white-space: nowrap;
			color: transparent; }
		ul.index li a:hover + span,
		ul.index li a:focus + span {
			color: #707070;
			color: var(--indexinfo-text);
		}
	}

/** Index Tables *****************************************************/
	/* See also the data table styling section, which this effectively subclasses */

	table.index {
		font-size: small;
		border-collapse: collapse;
		border-spacing: 0;
		text-align: left;
		margin: 1em 0;
	}

	table.index td,
	table.index th {
		padding: 0.4em;
	}

	table.index tr:hover td:not([rowspan]),
	table.index tr:hover th:not([rowspan]) {
		color: black;
		color: var(--indextable-hover-text);
		background: #f7f8f9;
		background: var(--indextable-hover-bg);
	}

	/* The link in the first column in the property table (formerly a TD) */
	table.index th:first-child a {
		font-weight: bold;
	}

/** Outdated warning **********************************************************/

.outdated-spec {
	color: black;
	color: var(--outdatedspec-text);
	background-color: rgba(0,0,0,0.5);
	background-color: var(--outdatedspec-bg);
}

.outdated-warning {
	position: fixed;
	bottom: 50%;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 50%;
	background: maroon;
	background: var(--outdated-bg);
	color: white;
	color: var(--outdated-text);
	border-radius: 1em;
	box-shadow: 0 0 1em red;
	box-shadow: 0 0 1em var(--outdated-shadow);
	padding: 2em;
	text-align: center;
	z-index: 2;
}

.outdated-warning a {
	color: currentcolor;
	background: transparent;
}

.edited-rec-warning {
	background: darkorange;
	background: var(--editedrec-bg);
	box-shadow: 0 0 1em;
}

.outdated-warning button {
	color: var(--outdated-text);
	border-radius: 1em;
	box-shadow: 0 0 1em red;
	box-shadow: 0 0 1em var(--outdated-shadow);
	padding: 2em;
	text-align: center;
	z-index: 2;
}

.outdated-warning a {
	color: currentcolor;
	background: transparent;
}

.edited-rec-warning {
	background: darkorange;
	background: var(--editedrec-bg);
	box-shadow: 0 0 1em;
}

.outdated-warning button {
	position: absolute;
	top: 0;
	right:0;
	margin: 0;
	border: 0;
	padding: 0.25em 0.5em;
	background: transparent;
	color: white;
	color: var(--outdated-text);
	font:1em sans-serif;
	text-align:center;
}

.outdated-warning span {
	display: block;
}

.outdated-collapsed {
	bottom: 0;
	border-radius: 0;
	width: 100%;
	padding: 0;
}

/******************************************************************************/
/*                                    Print                                   */
/******************************************************************************/

	@media print {
		/* Pages have their own margins. */
		html {
			margin: 0;
		}
		/* Serif for print. */
		body {
			font-family: serif;
		}

		.outdated-warning {
			position: absolute;
			border-style: solid;
			border-color: red;
		}

		.outdated-warning input {
			display: none;
		}
	}
	@page {
		margin: 1.5cm 1.1cm;
	}



/******************************************************************************/
/*                             Overflow Control                               */
/******************************************************************************/

	.figure .caption, .sidefigure .caption, figcaption {
		/* in case figure is overlarge, limit caption to 50em */
		max-width: 50rem;
		margin-left: auto;
		margin-right: auto;
	}
	.overlarge {
		/* Magic to create good item positioning:
		  "content column" is 50ems wide at max; less on smaller screens.
		  Extra space (after ToC + content) is empty on the right.

		  1. When item < content column, centers item in column.
		  2. When content < item < available, left-aligns.
		  3. When item > available, fills available + scroll bar.
		*/
		display: grid;
		grid-template-columns: minmax(0, 50em);
	}
	.overlarge > table {
		/* limit preferred width of table */
		max-width: 50em;
		margin-left: auto;
		margin-right: auto;
	}

	@media (min-width: 55em) {
		.overlarge {
			margin-right: calc(13px + 26.5rem - 50vw);
			max-width: none;
		}
	}
	@media screen and (min-width: 78em) {
		body:not(.toc-inline) .overlarge {
			/* 30.5em body padding 50em content area */
			margin-right: calc(40em - 50vw) !important;
		}
	}
	@media screen and (min-width: 90em) {
		body:not(.toc-inline) .overlarge {
			/* 4em html margin 30.5em body padding 50em content area */
			margin-right: calc(84.5em - 100vw) !important;
		}
	}

	@media not print {
		.overlarge {
			overflow-x: auto;
			/* See Lea Verou's explanation background-attachment:
			* http://lea.verou.me/2012/04/background-attachment-local/
			*
			background: top left  / 4em 100% linear-gradient(to right,  #ffffff, rgba(255, 255, 255, 0)) local,
						top right / 4em 100% linear-gradient(to left, #ffffff, rgba(255, 255, 255, 0)) local,
						top left  / 1em 100% linear-gradient(to right,  #c3c3c5, rgba(195, 195, 197, 0)) scroll,
						top right / 1em 100% linear-gradient(to left, #c3c3c5, rgba(195, 195, 197, 0)) scroll,
						white;
			background-repeat: no-repeat;
			*/
		}
	}
</style>
<style type="text/css">
    table, th, td {
      border: 1px solid black;
      border-collapse: collapse;
      vertical-align: top;
    }
    th, td {
      border-left: none;
      border-right: none;
      padding: 0px 10px;
    }
    th {
      text-align: center;
    }

    del { background: #fcc; color: #000; text-decoration: line-through; }
    ins { background: #cfc; color: #000; }
    blockquote .highlight:not(.idl) { background: initial; margin: initial; padding: 0.5em }
    blockquote ul { background: inherit; }
    blockquote code.highlight:not(.idl) { padding: initial; }
    blockquote c-[a] { color: inherit; } /* Keyword.Declaration */
    blockquote c-[b] { color: inherit; } /* Keyword.Type */
    blockquote c-[c] { color: inherit; } /* Comment */
    blockquote c-[d] { color: inherit; } /* Comment.Multiline */
    blockquote c-[e] { color: inherit; } /* Name.Attribute */
    blockquote c-[f] { color: inherit; } /* Name.Tag */
    blockquote c-[g] { color: inherit; } /* Name.Variable */
    blockquote c-[k] { color: inherit; } /* Keyword */
    blockquote c-[l] { color: inherit; } /* Literal */
    blockquote c-[m] { color: inherit; } /* Literal.Number */
    blockquote c-[n] { color: inherit; } /* Name */
    blockquote c-[o] { color: inherit; } /* Operator */
    blockquote c-[p] { color: inherit; } /* Punctuation */
    blockquote c-[s] { color: inherit; } /* Literal.String */
    blockquote c-[t] { color: inherit; } /* Literal.String.Single */
    blockquote c-[u] { color: inherit; } /* Literal.String.Double */
    blockquote c-[cp] { color: inherit; } /* Comment.Preproc */
    blockquote c-[c1] { color: inherit; } /* Comment.Single */
    blockquote c-[cs] { color: inherit; } /* Comment.Special */
    blockquote c-[kc] { color: inherit; } /* Keyword.Constant */
    blockquote c-[kn] { color: inherit; } /* Keyword.Namespace */
    blockquote c-[kp] { color: inherit; } /* Keyword.Pseudo */
    blockquote c-[kr] { color: inherit; } /* Keyword.Reserved */
    blockquote c-[ld] { color: inherit; } /* Literal.Date */
    blockquote c-[nc] { color: inherit; } /* Name.Class */
    blockquote c-[no] { color: inherit; } /* Name.Constant */
    blockquote c-[nd] { color: inherit; } /* Name.Decorator */
    blockquote c-[ni] { color: inherit; } /* Name.Entity */
    blockquote c-[ne] { color: inherit; } /* Name.Exception */
    blockquote c-[nf] { color: inherit; } /* Name.Function */
    blockquote c-[nl] { color: inherit; } /* Name.Label */
    blockquote c-[nn] { color: inherit; } /* Name.Namespace */
    blockquote c-[py] { color: inherit; } /* Name.Property */
    blockquote c-[ow] { color: inherit; } /* Operator.Word */
    blockquote c-[mb] { color: inherit; } /* Literal.Number.Bin */
    blockquote c-[mf] { color: inherit; } /* Literal.Number.Float */
    blockquote c-[mh] { color: inherit; } /* Literal.Number.Hex */
    blockquote c-[mi] { color: inherit; } /* Literal.Number.Integer */
    blockquote c-[mo] { color: inherit; } /* Literal.Number.Oct */
    blockquote c-[sb] { color: inherit; } /* Literal.String.Backtick */
    blockquote c-[sc] { color: inherit; } /* Literal.String.Char */
    blockquote c-[sd] { color: inherit; } /* Literal.String.Doc */
    blockquote c-[se] { color: inherit; } /* Literal.String.Escape */
    blockquote c-[sh] { color: inherit; } /* Literal.String.Heredoc */
    blockquote c-[si] { color: inherit; } /* Literal.String.Interpol */
    blockquote c-[sx] { color: inherit; } /* Literal.String.Other */
    blockquote c-[sr] { color: inherit; } /* Literal.String.Regex */
    blockquote c-[ss] { color: inherit; } /* Literal.String.Symbol */
    blockquote c-[vc] { color: inherit; } /* Name.Variable.Class */
    blockquote c-[vg] { color: inherit; } /* Name.Variable.Global */
    blockquote c-[vi] { color: inherit; } /* Name.Variable.Instance */
    blockquote c-[il] { color: inherit; } /* Literal.Number.Integer.Long */
  </style>
  <meta content="Bikeshed version b94c7e755, updated Fri Feb 19 16:28:59 2021 -0800" name="generator">
  <link href="https://isocpp.org/favicon.ico" rel="icon">
  <meta content="6be49eeaa1a611a68460cfde94f60c9cac1e0157" name="document-revision">
<style>
@media (prefers-color-scheme: dark) {
	:root {
		--bg-color: rgba(0, 0, 0, 0);
	}

	ins { background: rgba(0, 49, 0); color: rgba(115, 255, 110); text-decoration: underline; }
	del { background: rgba(49, 0, 0); color: rgb(255, 124, 124); text-decoration: line-through; }
	recent-ins { background: rgba(0, 49, 0); color: rgba(80, 80, 255); text-decoration: underline; }
	recent-del { background: rgba(49, 0, 0); color: rgb(255, 156, 56); text-decoration: line-through; }
	blockquote .highlight:not(.idl) { padding: 0.5em }
	blockquote ins .highlight:not(.idl) { background: rgba( 0, 49, 0); }
	blockquote del .highlight:not(.idl) { background: rgba(49,  0, 0); }
	blockquote code.highlight:not(.idl) { background: inherit; padding: initial; }

	c-[a] { color: #e783b4 } /* Keyword.Declaration */
	c-[b] { color: #e783b4 } /* Keyword.Type */
	c-[c] { color: #6ad4cc } /* Comment */
	c-[d] { color: #6ad4cc } /* Comment.Multiline */
	c-[e] { color: #92cbf5 } /* Name.Attribute */
	c-[f] { color: #b58900 } /* Name.Tag */
	c-[g] { color: #cb4b16 } /* Name.Variable */
	c-[k] { color: #e783b4 } /* Keyword */
	c-[l] { color: #a2b1b6 } /* Literal */
	c-[m] { color: #a2b1b6 } /* Literal.Number */
	c-[n] { color: #92cbf5 } /* Name */
	c-[o] { color: #a2b1b6 } /* Operator */
	c-[p] { color: #a2b1b6 } /* Punctuation */
	c-[s] { color: #a0a3e5 } /* Literal.String */
	c-[t] { color: #a0a3e5 } /* Literal.String.Single */
	c-[u] { color: #a0a3e5 } /* Literal.String.Double */
	c-[ch] { color: #6ad4cc } /* Comment.Hashbang */
	c-[cp] { color: #6ad4cc } /* Comment.Preproc */
	c-[cpf] { color: #6ad4cc } /* Comment.PreprocFile */
	c-[c1] { color: #6ad4cc } /* Comment.Single */
	c-[cs] { color: #6ad4cc } /* Comment.Special */
	c-[kc] { color: #e783b4 } /* Keyword.Constant */
	c-[kn] { color: #e783b4 } /* Keyword.Namespace */
	c-[kp] { color: #e783b4 } /* Keyword.Pseudo */
	c-[kr] { color: #e783b4 } /* Keyword.Reserved */
	c-[ld] { color: #a2b1b6 } /* Literal.Date */
	c-[nc] { color: #92cbf5 } /* Name.Class */
	c-[no] { color: #92cbf5 } /* Name.Constant */
	c-[nd] { color: #92cbf5 } /* Name.Decorator */
	c-[ni] { color: #92cbf5 } /* Name.Entity */
	c-[ne] { color: #92cbf5 } /* Name.Exception */
	c-[nf] { color: #92cbf5 } /* Name.Function */
	c-[nl] { color: #92cbf5 } /* Name.Label */
	c-[nn] { color: #92cbf5 } /* Name.Namespace */
	c-[py] { color: #92cbf5 } /* Name.Property */
	c-[ow] { color: #a2b1b6 } /* Operator.Word */
	c-[mb] { color: #a2b1b6 } /* Literal.Number.Bin */
	c-[mf] { color: #a2b1b6 } /* Literal.Number.Float */
	c-[mh] { color: #a2b1b6 } /* Literal.Number.Hex */
	c-[mi] { color: #a2b1b6 } /* Literal.Number.Integer */
	c-[mo] { color: #a2b1b6 } /* Literal.Number.Oct */
	c-[sa] { color: #a0a3e5 } /* Literal.String.Affix */
	c-[sb] { color: #a0a3e5 } /* Literal.String.Backtick */
	c-[sc] { color: #a0a3e5 } /* Literal.String.Char */
	c-[dl] { color: #a0a3e5 } /* Literal.String.Delimiter */
	c-[sd] { color: #a0a3e5 } /* Literal.String.Doc */
	c-[se] { color: #a0a3e5 } /* Literal.String.Escape */
	c-[sh] { color: #a0a3e5 } /* Literal.String.Heredoc */
	c-[si] { color: #a0a3e5 } /* Literal.String.Interpol */
	c-[sx] { color: #a0a3e5 } /* Literal.String.Other */
	c-[sr] { color: #a0a3e5 } /* Literal.String.Regex */
	c-[ss] { color: #a0a3e5 } /* Literal.String.Symbol */
	c-[fm] { color: #92cbf5 } /* Name.Function.Magic */
	c-[vc] { color: #cb4b16 } /* Name.Variable.Class */
	c-[vg] { color: #cb4b16 } /* Name.Variable.Global */
	c-[vi] { color: #cb4b16 } /* Name.Variable.Instance */
	c-[vm] { color: #cb4b16 } /* Name.Variable.Magic */
	c-[il] { color: #a2b1b6 } /* Literal.Number.Integer.Long */

	blockquote c-[b] { color: #e783b4 } /* Keyword.Type */
	blockquote c-[a] { color: #e783b4 } /* Keyword.Declaration */
	blockquote c-[c] { color: #6ad4cc } /* Comment */
	blockquote c-[d] { color: #6ad4cc } /* Comment.Multiline */
	blockquote c-[e] { color: #92cbf5 } /* Name.Attribute */
	blockquote c-[f] { color: #b58900 } /* Name.Tag */
	blockquote c-[g] { color: #cb4b16 } /* Name.Variable */
	blockquote c-[k] { color: #e783b4 } /* Keyword */
	blockquote c-[l] { color: #a2b1b6 } /* Literal */
	blockquote c-[m] { color: #a2b1b6 } /* Literal.Number */
	blockquote c-[n] { color: #92cbf5 } /* Name */
	blockquote c-[o] { color: #a2b1b6 } /* Operator */
	blockquote c-[p] { color: #a2b1b6 } /* Punctuation */
	blockquote c-[s] { color: #a0a3e5 } /* Literal.String */
	blockquote c-[t] { color: #a0a3e5 } /* Literal.String.Single */
	blockquote c-[u] { color: #a0a3e5 } /* Literal.String.Double */
	blockquote c-[ch] { color: #6ad4cc } /* Comment.Hashbang */
	blockquote c-[cp] { color: #6ad4cc } /* Comment.Preproc */
	blockquote c-[cpf] { color: #6ad4cc } /* Comment.PreprocFile */
	blockquote c-[c1] { color: #6ad4cc } /* Comment.Single */
	blockquote c-[cs] { color: #6ad4cc } /* Comment.Special */
	blockquote c-[kc] { color: #e783b4 } /* Keyword.Constant */
	blockquote c-[kn] { color: #e783b4 } /* Keyword.Namespace */
	blockquote c-[kp] { color: #e783b4 } /* Keyword.Pseudo */
	blockquote c-[kr] { color: #e783b4 } /* Keyword.Reserved */
	blockquote c-[ld] { color: #a2b1b6 } /* Literal.Date */
	blockquote c-[nc] { color: #92cbf5 } /* Name.Class */
	blockquote c-[no] { color: #92cbf5 } /* Name.Constant */
	blockquote c-[nd] { color: #92cbf5 } /* Name.Decorator */
	blockquote c-[ni] { color: #92cbf5 } /* Name.Entity */
	blockquote c-[ne] { color: #92cbf5 } /* Name.Exception */
	blockquote c-[nf] { color: #92cbf5 } /* Name.Function */
	blockquote c-[nl] { color: #92cbf5 } /* Name.Label */
	blockquote c-[nn] { color: #92cbf5 } /* Name.Namespace */
	blockquote c-[py] { color: #92cbf5 } /* Name.Property */
	blockquote c-[ow] { color: #a2b1b6 } /* Operator.Word */
	blockquote c-[mb] { color: #a2b1b6 } /* Literal.Number.Bin */
	blockquote c-[mf] { color: #a2b1b6 } /* Literal.Number.Float */
	blockquote c-[mh] { color: #a2b1b6 } /* Literal.Number.Hex */
	blockquote c-[mi] { color: #a2b1b6 } /* Literal.Number.Integer */
	blockquote c-[mo] { color: #a2b1b6 } /* Literal.Number.Oct */
	blockquote c-[sa] { color: #a0a3e5 } /* Literal.String.Affix */
	blockquote c-[sb] { color: #a0a3e5 } /* Literal.String.Backtick */
	blockquote c-[sc] { color: #a0a3e5 } /* Literal.String.Char */
	blockquote c-[dl] { color: #a0a3e5 } /* Literal.String.Delimiter */
	blockquote c-[sd] { color: #a0a3e5 } /* Literal.String.Doc */
	blockquote c-[se] { color: #a0a3e5 } /* Literal.String.Escape */
	blockquote c-[sh] { color: #a0a3e5 } /* Literal.String.Heredoc */
	blockquote c-[si] { color: #a0a3e5 } /* Literal.String.Interpol */
	blockquote c-[sx] { color: #a0a3e5 } /* Literal.String.Other */
	blockquote c-[sr] { color: #a0a3e5 } /* Literal.String.Regex */
	blockquote c-[ss] { color: #a0a3e5 } /* Literal.String.Symbol */
	blockquote c-[fm] { color: #92cbf5 } /* Name.Function.Magic */
	blockquote c-[vc] { color: #cb4b16 } /* Name.Variable.Class */
	blockquote c-[vg] { color: #cb4b16 } /* Name.Variable.Global */
	blockquote c-[vi] { color: #cb4b16 } /* Name.Variable.Instance */
	blockquote c-[vm] { color: #cb4b16 } /* Name.Variable.Magic */
	blockquote c-[il] { color: #a2b1b6 } /* Literal.Number.Integer.Long */
}

@media (prefers-color-scheme: light) {
	:root {
		--bg-color: rgba(255, 255, 255, 0);
	}
	ins { background: rgba(200, 255, 200); color: rgba(0, 20, 0); text-decoration: underline; }
	del { background: rgba(255, 200, 200); color: rgb(20, 0, 0); text-decoration: line-through; }
	blockquote .highlight:not(.idl) { padding: 0.5em }
	blockquote ins .highlight:not(.idl) { background: rgba(200, 255, 200); }
	blockquote del .highlight:not(.idl) { background: rgba(255, 200, 200); }
	blockquote code.highlight:not(.idl) { background: inherit; padding: initial; }
}
</style>
<style>/* style-autolinks */

.css.css, .property.property, .descriptor.descriptor {
    color: var(--a-normal-text);
    font-size: inherit;
    font-family: inherit;
}
.css::before, .property::before, .descriptor::before {
    content: "‘";
}
.css::after, .property::after, .descriptor::after {
    content: "’";
}
.property, .descriptor {
    /* Don't wrap property and descriptor names */
    white-space: nowrap;
}
.type { /* CSS value <type> */
    font-style: italic;
}
pre .property::before, pre .property::after {
    content: "";
}
[data-link-type="property"]::before,
[data-link-type="propdesc"]::before,
[data-link-type="descriptor"]::before,
[data-link-type="value"]::before,
[data-link-type="function"]::before,
[data-link-type="at-rule"]::before,
[data-link-type="selector"]::before,
[data-link-type="maybe"]::before {
    content: "‘";
}
[data-link-type="property"]::after,
[data-link-type="propdesc"]::after,
[data-link-type="descriptor"]::after,
[data-link-type="value"]::after,
[data-link-type="function"]::after,
[data-link-type="at-rule"]::after,
[data-link-type="selector"]::after,
[data-link-type="maybe"]::after {
    content: "’";
}

[data-link-type].production::before,
[data-link-type].production::after,
.prod [data-link-type]::before,
.prod [data-link-type]::after {
    content: "";
}

[data-link-type=element],
[data-link-type=element-attr] {
    font-family: Menlo, Consolas, "DejaVu Sans Mono", monospace;
    font-size: .9em;
}
[data-link-type=element]::before { content: "<" }
[data-link-type=element]::after  { content: ">" }

[data-link-type=biblio] {
    white-space: pre;
}</style>
<style>/* style-colors */

/* Any --*-text not paired with a --*-bg is assumed to have a transparent bg */
:root {
    color-scheme: light dark;

    --text: black;
    --bg: white;

    --unofficial-watermark: url(https://www.w3.org/StyleSheets/TR/2016/logos/UD-watermark);

    --logo-bg: #1a5e9a;
    --logo-active-bg: #c00;
    --logo-text: white;

    --tocnav-normal-text: #707070;
    --tocnav-normal-bg: var(--bg);
    --tocnav-hover-text: var(--tocnav-normal-text);
    --tocnav-hover-bg: #f8f8f8;
    --tocnav-active-text: #c00;
    --tocnav-active-bg: var(--tocnav-normal-bg);

    --tocsidebar-text: var(--text);
    --tocsidebar-bg: #f7f8f9;
    --tocsidebar-shadow: rgba(0,0,0,.1);
    --tocsidebar-heading-text: hsla(203,20%,40%,.7);

    --toclink-text: var(--text);
    --toclink-underline: #3980b5;
    --toclink-visited-text: var(--toclink-text);
    --toclink-visited-underline: #054572;

    --heading-text: #005a9c;

    --hr-text: var(--text);

    --algo-border: #def;

    --del-text: red;
    --del-bg: transparent;
    --ins-text: #080;
    --ins-bg: transparent;

    --a-normal-text: #034575;
    --a-normal-underline: #707070;
    --a-visited-text: var(--a-normal-text);
    --a-visited-underline: #bbb;
    --a-hover-bg: rgba(75%, 75%, 75%, .25);
    --a-active-text: #c00;
    --a-active-underline: #c00;

    --blockquote-border: silver;
    --blockquote-bg: transparent;
    --blockquote-text: currentcolor;

    --issue-border: #e05252;
    --issue-bg: #fbe9e9;
    --issue-text: var(--text);
    --issueheading-text: #831616;

    --example-border: #e0cb52;
    --example-bg: #fcfaee;
    --example-text: var(--text);
    --exampleheading-text: #574b0f;

    --note-border: #52e052;
    --note-bg: #e9fbe9;
    --note-text: var(--text);
    --noteheading-text: hsl(120, 70%, 30%);
    --notesummary-underline: silver;

    --assertion-border: #aaa;
    --assertion-bg: #eee;
    --assertion-text: black;

    --advisement-border: orange;
    --advisement-bg: #fec;
    --advisement-text: var(--text);
    --advisementheading-text: #b35f00;

    --warning-border: red;
    --warning-bg: hsla(40,100%,50%,0.95);
    --warning-text: var(--text);

    --amendment-border: #330099;
    --amendment-bg: #F5F0FF;
    --amendment-text: var(--text);
    --amendmentheading-text: #220066;

    --def-border: #8ccbf2;
    --def-bg: #def;
    --def-text: var(--text);
    --defrow-border: #bbd7e9;

    --datacell-border: silver;

    --indexinfo-text: #707070;

    --indextable-hover-text: black;
    --indextable-hover-bg: #f7f8f9;

    --outdatedspec-bg: rgba(0, 0, 0, .5);
    --outdatedspec-text: black;
    --outdated-bg: maroon;
    --outdated-text: white;
    --outdated-shadow: red;

    --editedrec-bg: darkorange;
}</style>
<style>/* style-counters */

body {
    counter-reset: example figure issue;
}
.issue {
    counter-increment: issue;
}
.issue:not(.no-marker)::before {
    content: "Issue " counter(issue);
}

.example {
    counter-increment: example;
}
.example:not(.no-marker)::before {
    content: "Example " counter(example);
}
.invalid.example:not(.no-marker)::before,
.illegal.example:not(.no-marker)::before {
    content: "Invalid Example" counter(example);
}

figcaption {
    counter-increment: figure;
}
figcaption:not(.no-marker)::before {
    content: "Figure " counter(figure) " ";
}</style>
<style>/* style-md-lists */

/* This is a weird hack for me not yet following the commonmark spec
   regarding paragraph and lists. */
[data-md] > :first-child {
    margin-top: 0;
}
[data-md] > :last-child {
    margin-bottom: 0;
}</style>
<style>/* style-selflinks */

:root {
    --selflink-text: white;
    --selflink-bg: gray;
    --selflink-hover-text: black;
}
.heading, .issue, .note, .example, li, dt {
    position: relative;
}
a.self-link {
    position: absolute;
    top: 0;
    left: calc(-1 * (3.5rem - 26px));
    width: calc(3.5rem - 26px);
    height: 2em;
    text-align: center;
    border: none;
    transition: opacity .2s;
    opacity: .5;
}
a.self-link:hover {
    opacity: 1;
}
.heading > a.self-link {
    font-size: 83%;
}
li > a.self-link {
    left: calc(-1 * (3.5rem - 26px) - 2em);
}
dfn > a.self-link {
    top: auto;
    left: auto;
    opacity: 0;
    width: 1.5em;
    height: 1.5em;
    background: var(--selflink-bg);
    color: var(--selflink-text);
    font-style: normal;
    transition: opacity .2s, background-color .2s, color .2s;
}
dfn:hover > a.self-link {
    opacity: 1;
}
dfn > a.self-link:hover {
    color: var(--selflink-hover-text);
}

a.self-link::before            { content: "¶"; }
.heading > a.self-link::before { content: "§"; }
dfn > a.self-link::before      { content: "#"; }
</style>
<style>/* style-syntax-highlighting */

code.highlight { padding: .1em; border-radius: .3em; }
pre.highlight, pre > code.highlight { display: block; padding: 1em; margin: .5em 0; overflow: auto; border-radius: 0; }

.highlight:not(.idl) { background: rgba(0, 0, 0, .03); }
c-[a] { color: #990055 } /* Keyword.Declaration */
c-[b] { color: #990055 } /* Keyword.Type */
c-[c] { color: #708090 } /* Comment */
c-[d] { color: #708090 } /* Comment.Multiline */
c-[e] { color: #0077aa } /* Name.Attribute */
c-[f] { color: #669900 } /* Name.Tag */
c-[g] { color: #222222 } /* Name.Variable */
c-[k] { color: #990055 } /* Keyword */
c-[l] { color: #000000 } /* Literal */
c-[m] { color: #000000 } /* Literal.Number */
c-[n] { color: #0077aa } /* Name */
c-[o] { color: #999999 } /* Operator */
c-[p] { color: #999999 } /* Punctuation */
c-[s] { color: #a67f59 } /* Literal.String */
c-[t] { color: #a67f59 } /* Literal.String.Single */
c-[u] { color: #a67f59 } /* Literal.String.Double */
c-[cp] { color: #708090 } /* Comment.Preproc */
c-[c1] { color: #708090 } /* Comment.Single */
c-[cs] { color: #708090 } /* Comment.Special */
c-[kc] { color: #990055 } /* Keyword.Constant */
c-[kn] { color: #990055 } /* Keyword.Namespace */
c-[kp] { color: #990055 } /* Keyword.Pseudo */
c-[kr] { color: #990055 } /* Keyword.Reserved */
c-[ld] { color: #000000 } /* Literal.Date */
c-[nc] { color: #0077aa } /* Name.Class */
c-[no] { color: #0077aa } /* Name.Constant */
c-[nd] { color: #0077aa } /* Name.Decorator */
c-[ni] { color: #0077aa } /* Name.Entity */
c-[ne] { color: #0077aa } /* Name.Exception */
c-[nf] { color: #0077aa } /* Name.Function */
c-[nl] { color: #0077aa } /* Name.Label */
c-[nn] { color: #0077aa } /* Name.Namespace */
c-[py] { color: #0077aa } /* Name.Property */
c-[ow] { color: #999999 } /* Operator.Word */
c-[mb] { color: #000000 } /* Literal.Number.Bin */
c-[mf] { color: #000000 } /* Literal.Number.Float */
c-[mh] { color: #000000 } /* Literal.Number.Hex */
c-[mi] { color: #000000 } /* Literal.Number.Integer */
c-[mo] { color: #000000 } /* Literal.Number.Oct */
c-[sb] { color: #a67f59 } /* Literal.String.Backtick */
c-[sc] { color: #a67f59 } /* Literal.String.Char */
c-[sd] { color: #a67f59 } /* Literal.String.Doc */
c-[se] { color: #a67f59 } /* Literal.String.Escape */
c-[sh] { color: #a67f59 } /* Literal.String.Heredoc */
c-[si] { color: #a67f59 } /* Literal.String.Interpol */
c-[sx] { color: #a67f59 } /* Literal.String.Other */
c-[sr] { color: #a67f59 } /* Literal.String.Regex */
c-[ss] { color: #a67f59 } /* Literal.String.Symbol */
c-[vc] { color: #0077aa } /* Name.Variable.Class */
c-[vg] { color: #0077aa } /* Name.Variable.Global */
c-[vi] { color: #0077aa } /* Name.Variable.Instance */
c-[il] { color: #000000 } /* Literal.Number.Integer.Long */
</style>
<style>/* style-darkmode */

@media (prefers-color-scheme: dark) {
    :root {
        --text: #ddd;
        --bg: black;

        --unofficial-watermark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cg fill='%23100808' transform='translate(200 200) rotate(-45) translate(-200 -200)' stroke='%23100808' stroke-width='3'%3E%3Ctext x='50%25' y='220' style='font: bold 70px sans-serif; text-anchor: middle; letter-spacing: 6px;'%3EUNOFFICIAL%3C/text%3E%3Ctext x='50%25' y='305' style='font: bold 70px sans-serif; text-anchor: middle; letter-spacing: 6px;'%3EDRAFT%3C/text%3E%3C/g%3E%3C/svg%3E");

        --logo-bg: #1a5e9a;
        --logo-active-bg: #c00;
        --logo-text: white;

        --tocnav-normal-text: #999;
        --tocnav-normal-bg: var(--bg);
        --tocnav-hover-text: var(--tocnav-normal-text);
        --tocnav-hover-bg: #080808;
        --tocnav-active-text: #f44;
        --tocnav-active-bg: var(--tocnav-normal-bg);

        --tocsidebar-text: var(--text);
        --tocsidebar-bg: #080808;
        --tocsidebar-shadow: rgba(255,255,255,.1);
        --tocsidebar-heading-text: hsla(203,20%,40%,.7);

        --toclink-text: var(--text);
        --toclink-underline: #6af;
        --toclink-visited-text: var(--toclink-text);
        --toclink-visited-underline: #054572;

        --heading-text: #8af;

        --hr-text: var(--text);

        --algo-border: #456;

        --del-text: #f44;
        --del-bg: transparent;
        --ins-text: #4a4;
        --ins-bg: transparent;

        --a-normal-text: #6af;
        --a-normal-underline: #555;
        --a-visited-text: var(--a-normal-text);
        --a-visited-underline: var(--a-normal-underline);
        --a-hover-bg: rgba(25%, 25%, 25%, .2);
        --a-active-text: #f44;
        --a-active-underline: var(--a-active-text);

        --borderedblock-bg: rgba(255, 255, 255, .05);

        --blockquote-border: silver;
        --blockquote-bg: var(--borderedblock-bg);
        --blockquote-text: currentcolor;

        --issue-border: #e05252;
        --issue-bg: var(--borderedblock-bg);
        --issue-text: var(--text);
        --issueheading-text: hsl(0deg, 70%, 70%);

        --example-border: hsl(50deg, 90%, 60%);
        --example-bg: var(--borderedblock-bg);
        --example-text: var(--text);
        --exampleheading-text: hsl(50deg, 70%, 70%);

        --note-border: hsl(120deg, 100%, 35%);
        --note-bg: var(--borderedblock-bg);
        --note-text: var(--text);
        --noteheading-text: hsl(120, 70%, 70%);
        --notesummary-underline: silver;

        --assertion-border: #444;
        --assertion-bg: var(--borderedblock-bg);
        --assertion-text: var(--text);

        --advisement-border: orange;
        --advisement-bg: #222218;
        --advisement-text: var(--text);
        --advisementheading-text: #f84;

        --warning-border: red;
        --warning-bg: hsla(40,100%,20%,0.95);
        --warning-text: var(--text);

        --amendment-border: #330099;
        --amendment-bg: #080010;
        --amendment-text: var(--text);
        --amendmentheading-text: #cc00ff;

        --def-border: #8ccbf2;
        --def-bg: #080818;
        --def-text: var(--text);
        --defrow-border: #136;

        --datacell-border: silver;

        --indexinfo-text: #aaa;

        --indextable-hover-text: var(--text);
        --indextable-hover-bg: #181818;

        --outdatedspec-bg: rgba(255, 255, 255, .5);
        --outdatedspec-text: black;
        --outdated-bg: maroon;
        --outdated-text: white;
        --outdated-shadow: red;

        --editedrec-bg: darkorange;
    }
    /* In case a transparent-bg image doesn't expect to be on a dark bg,
       which is quite common in practice... */
    img { background: white; }
}
@media (prefers-color-scheme: dark) {
    :root {
        --selflink-text: black;
        --selflink-bg: silver;
        --selflink-hover-text: white;
    }
}

@media (prefers-color-scheme: dark) {
    .highlight:not(.idl) { background: rgba(255, 255, 255, .05); }

    c-[a] { color: #d33682 } /* Keyword.Declaration */
    c-[b] { color: #d33682 } /* Keyword.Type */
    c-[c] { color: #2aa198 } /* Comment */
    c-[d] { color: #2aa198 } /* Comment.Multiline */
    c-[e] { color: #268bd2 } /* Name.Attribute */
    c-[f] { color: #b58900 } /* Name.Tag */
    c-[g] { color: #cb4b16 } /* Name.Variable */
    c-[k] { color: #d33682 } /* Keyword */
    c-[l] { color: #657b83 } /* Literal */
    c-[m] { color: #657b83 } /* Literal.Number */
    c-[n] { color: #268bd2 } /* Name */
    c-[o] { color: #657b83 } /* Operator */
    c-[p] { color: #657b83 } /* Punctuation */
    c-[s] { color: #6c71c4 } /* Literal.String */
    c-[t] { color: #6c71c4 } /* Literal.String.Single */
    c-[u] { color: #6c71c4 } /* Literal.String.Double */
    c-[ch] { color: #2aa198 } /* Comment.Hashbang */
    c-[cp] { color: #2aa198 } /* Comment.Preproc */
    c-[cpf] { color: #2aa198 } /* Comment.PreprocFile */
    c-[c1] { color: #2aa198 } /* Comment.Single */
    c-[cs] { color: #2aa198 } /* Comment.Special */
    c-[kc] { color: #d33682 } /* Keyword.Constant */
    c-[kn] { color: #d33682 } /* Keyword.Namespace */
    c-[kp] { color: #d33682 } /* Keyword.Pseudo */
    c-[kr] { color: #d33682 } /* Keyword.Reserved */
    c-[ld] { color: #657b83 } /* Literal.Date */
    c-[nc] { color: #268bd2 } /* Name.Class */
    c-[no] { color: #268bd2 } /* Name.Constant */
    c-[nd] { color: #268bd2 } /* Name.Decorator */
    c-[ni] { color: #268bd2 } /* Name.Entity */
    c-[ne] { color: #268bd2 } /* Name.Exception */
    c-[nf] { color: #268bd2 } /* Name.Function */
    c-[nl] { color: #268bd2 } /* Name.Label */
    c-[nn] { color: #268bd2 } /* Name.Namespace */
    c-[py] { color: #268bd2 } /* Name.Property */
    c-[ow] { color: #657b83 } /* Operator.Word */
    c-[mb] { color: #657b83 } /* Literal.Number.Bin */
    c-[mf] { color: #657b83 } /* Literal.Number.Float */
    c-[mh] { color: #657b83 } /* Literal.Number.Hex */
    c-[mi] { color: #657b83 } /* Literal.Number.Integer */
    c-[mo] { color: #657b83 } /* Literal.Number.Oct */
    c-[sa] { color: #6c71c4 } /* Literal.String.Affix */
    c-[sb] { color: #6c71c4 } /* Literal.String.Backtick */
    c-[sc] { color: #6c71c4 } /* Literal.String.Char */
    c-[dl] { color: #6c71c4 } /* Literal.String.Delimiter */
    c-[sd] { color: #6c71c4 } /* Literal.String.Doc */
    c-[se] { color: #6c71c4 } /* Literal.String.Escape */
    c-[sh] { color: #6c71c4 } /* Literal.String.Heredoc */
    c-[si] { color: #6c71c4 } /* Literal.String.Interpol */
    c-[sx] { color: #6c71c4 } /* Literal.String.Other */
    c-[sr] { color: #6c71c4 } /* Literal.String.Regex */
    c-[ss] { color: #6c71c4 } /* Literal.String.Symbol */
    c-[fm] { color: #268bd2 } /* Name.Function.Magic */
    c-[vc] { color: #cb4b16 } /* Name.Variable.Class */
    c-[vg] { color: #cb4b16 } /* Name.Variable.Global */
    c-[vi] { color: #cb4b16 } /* Name.Variable.Instance */
    c-[vm] { color: #cb4b16 } /* Name.Variable.Magic */
    c-[il] { color: #657b83 } /* Literal.Number.Integer.Long */
}
</style>
 <body class="h-entry">
  <div class="head">
   <p data-fill-with="logo"></p>
   <h1 class="p-name no-ref" id="title">P1132R7<br>out_ptr - a scalable output pointer abstraction</h1>
   <h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Published Proposal, <time class="dt-updated" datetime="2021-04-15">2021-04-15</time></span></h2>
   <div data-fill-with="spec-metadata">
    <dl>
     <dt class="editor">Authors:
     <dd class="editor p-author h-card vcard"><a class="p-name fn u-email email" href="mailto:phdofthehouse@gmail.com">JeanHeyd Meneide</a>
     <dd class="editor p-author h-card vcard"><a class="p-name fn u-email email" href="mailto:tbuyukliev@vmware.com">Todor Buyukliev</a>
     <dd class="editor p-author h-card vcard"><a class="p-name fn u-url url" href="https://twitter.com/slurpsmadrips">Isabella Muerte</a>
     <dt>Audience:
     <dd>LWG
     <dt>Project:
     <dd>ISO/IEC JTC1/SC22/WG21 14882: Programming Language — C++
     <dt>Target:
     <dd>C++23
     <dt>Latest:
     <dd><a href="https://thephd.github.io/_vendor/future_cxx/papers/d1132.html">https://thephd.github.io/_vendor/future_cxx/papers/d1132.html</a>
     <dt>Implementation:
     <dd><a href="https://github.com/soasis/out_ptr">https://github.com/soasis/out_ptr</a>
     <dt>Reply To:
     <dd><a href="mailto:phdofthehouse@gmail.com">JeanHeyd Meneide</a>
    </dl>
   </div>
   <div data-fill-with="warning"></div>
   <hr title="Separator for header">
  </div>
  <div class="p-summary" data-fill-with="abstract">
   <h2 class="no-num no-toc no-ref heading settled" id="abstract"><span class="content">Abstract</span></h2>
   <p>out_ptr and inout_ptr are abstractions to bring both C APIs and smart pointers back into the promised land by creating a temporary pointer-to-pointer that updates (using a reset call or semantically equivalent behavior) the smart pointer when it destructs.</p>
  </div>
  <nav data-fill-with="table-of-contents" id="toc">
   <h2 class="no-num no-toc no-ref" id="contents">Table of Contents</h2>
   <ol class="toc" role="directory">
    <li>
     <a href="#changelog"><span class="secno">1</span> <span class="content">Revision History</span></a>
     <ol class="toc">
      <li><a href="#changelog-r7"><span class="secno">1.1</span> <span class="content">Revision 7 - April 15th, 2021</span></a>
      <li><a href="#changelog-r5ii"><span class="secno">1.2</span> <span class="content">Revision 6 - October 7th, 2019</span></a>
      <li><a href="#changelog-r5"><span class="secno">1.3</span> <span class="content">Revision 5 - July 10th, 2019</span></a>
      <li><a href="#changelog-r4"><span class="secno">1.4</span> <span class="content">Revision 4 - June 17th, 2019</span></a>
      <li><a href="#changelog-r3"><span class="secno">1.5</span> <span class="content">Revision 3 - January 21st, 2019</span></a>
      <li><a href="#changelog-r2"><span class="secno">1.6</span> <span class="content">Revision 2 - November 26th, 2018</span></a>
      <li><a href="#changelog-r1"><span class="secno">1.7</span> <span class="content">Revision 1 - October 7th, 2018</span></a>
      <li><a href="#changelog-r0"><span class="secno">1.8</span> <span class="content">Revision 0</span></a>
     </ol>
    <li><a href="#motivation"><span class="secno">2</span> <span class="content">Motivation</span></a>
    <li>
     <a href="#design"><span class="secno">3</span> <span class="content">Design Considerations</span></a>
     <ol class="toc">
      <li><a href="#design-synopsis"><span class="secno">3.1</span> <span class="content">Synopsis</span></a>
      <li><a href="#design-overview"><span class="secno">3.2</span> <span class="content">Overview</span></a>
      <li><a href="#design-safety"><span class="secno">3.3</span> <span class="content">Safety</span></a>
      <li><a href="#design-exceptions"><span class="secno">3.4</span> <span class="content">Exception Safety</span></a>
      <li>
       <a href="#design-casting"><span class="secno">3.5</span> <span class="content">Casting Support</span></a>
       <ol class="toc">
        <li><a href="#design-casting-void"><span class="secno">3.5.1</span> <span class="content">Casting Support: easy <code class="highlight"><c- b>void</c-><c- o>**</c-></code> support</span></a>
        <li><a href="#design-casting-similar"><span class="secno">3.5.2</span> <span class="content">Casting Support: to arbitrary <code class="highlight"><c- n>T</c-></code></span></a>
        <li><a href="#design-casting-const"><span class="secno">3.5.3</span> <span class="content">Casting Support: <code class="highlight"><c- k>const</c-></code> operators</span></a>
       </ol>
      <li><a href="#design-realloc"><span class="secno">3.6</span> <span class="content">Reallocation Support</span></a>
      <li><a href="#design-footguns"><span class="secno">3.7</span> <span class="content">Footguns?</span></a>
      <li>
       <a href="#design-extension"><span class="secno">3.8</span> <span class="content">Extension Points</span></a>
       <ol class="toc">
        <li><a href="#design-extension-get-ref"><span class="secno">3.8.1</span> <span class="content">Rejected: just adding <code class="highlight"><c- n>get_ref</c-></code> to related non-shared pointers</span></a>
        <li><a href="#design-extension-addressof"><span class="secno">3.8.2</span> <span class="content">Rejected: adding <code class="highlight"><c- o>&amp;</c-><c- k>operator</c-></code> to this type</span></a>
        <li><a href="#design-extension-adl"><span class="secno">3.8.3</span> <span class="content">Rejected: unrestricted ADL</span></a>
        <li><a href="#design-extension-friends"><span class="secno">3.8.4</span> <span class="content">Rejected: restricted ADL using in-class friend functions</span></a>
        <li><a href="#design-extension-traits"><span class="secno">3.8.5</span> <span class="content">Potential Future: Traits type customization</span></a>
       </ol>
     </ol>
    <li>
     <a href="#experience"><span class="secno">4</span> <span class="content">Implementation Experience</span></a>
     <ol class="toc">
      <li><a href="#experience-wrapping"><span class="secno">4.1</span> <span class="content">Why Not Wrap It?</span></a>
      <li><a href="#experience-noexcept"><span class="secno">4.2</span> <span class="content">Conditionally <code class="highlight"><c- k>noexcept</c-></code> destructor?</span></a>
     </ol>
    <li>
     <a href="#perf"><span class="secno">5</span> <span class="content">Performance</span></a>
     <ol class="toc">
      <li><a href="#perf-out_ptr"><span class="secno">5.1</span> <span class="content">For <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code></span></a>
      <li><a href="#perf-inout_ptr"><span class="secno">5.2</span> <span class="content">For <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code></span></a>
      <li><a href="#perf-shared"><span class="secno">5.3</span> <span class="content">For <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> and various cases</span></a>
     </ol>
    <li>
     <a href="#bikeshed"><span class="secno">6</span> <span class="content">Bikeshed</span></a>
     <ol class="toc">
      <li><a href="#bikeshed-specification"><span class="secno">6.1</span> <span class="content">Alternative Specification</span></a>
      <li><a href="#bikeshed-naming"><span class="secno">6.2</span> <span class="content">Naming</span></a>
     </ol>
    <li>
     <a href="#wording"><span class="secno">7</span> <span class="content">Proposed Changes</span></a>
     <ol class="toc">
      <li><a href="#wording-feature"><span class="secno">7.1</span> <span class="content">Proposed Feature Test Macro and Header</span></a>
      <li><a href="#wording-intent"><span class="secno">7.2</span> <span class="content">Intent</span></a>
      <li><a href="#wording-library"><span class="secno">7.3</span> <span class="content">Proposed Wording</span></a>
     </ol>
    <li><a href="#acknowledgements"><span class="secno">8</span> <span class="content">Acknowledgements</span></a>
    <li>
     <a href="#references"><span class="secno"></span> <span class="content">References</span></a>
     <ol class="toc">
      <li><a href="#informative"><span class="secno"></span> <span class="content">Informative References</span></a>
     </ol>
   </ol>
  </nav>
  <main>
   <h2 class="heading settled" data-level="1" id="changelog"><span class="secno">1. </span><span class="content">Revision History</span><a class="self-link" href="#changelog"></a></h2>
   <h3 class="heading settled" data-level="1.1" id="changelog-r7"><span class="secno">1.1. </span><span class="content">Revision 7 - April 15th, 2021</span><a class="self-link" href="#changelog-r7"></a></h3>
   <ul>
    <li data-md>
     <p>Wording improvements (many thanks to Tim Song and LWG’s review!):</p>
     <ul>
      <li data-md>
       <p>Conditionally call <code class="highlight"><c- p>.</c-><c- n>release</c-><c- p>()</c-></code> for <code class="highlight"><c- n>inout_ptr_t</c-></code> in BOTH the constructor and the destructor.</p>
      <li data-md>
       <p>Italicize <em>qualified-id</em>;</p>
      <li data-md>
       <p>Drop <code class="highlight"><c- k>typename</c-></code> in the specification;</p>
      <li data-md>
       <p>Add constraints to the class by adding a paragraph about <code class="highlight"><c- n>Pointer</c-></code> being a <code class="highlight"><c- n>Cpp17NullablePointer</c-></code> (thanks Jonathan Wakely!);</p>
      <li data-md>
       <p>Use the <code class="highlight"><c- n>Pointer</c-> <c- o>=</c-> <c- b>void</c-></code> trick to get rid of ambiguity from the old syntax when <code class="highlight"><c- n>Smart</c-></code> and <code class="highlight"><c- n>Pointer</c-></code> were of identical types (Thanks, Tomasz Kamiński!); and,</p>
      <li data-md>
       <p>Adjust the <code class="highlight"><c- n>POINTER_OF</c-></code>/<code class="highlight"><c- n>POINTER_OF_OR</c-></code> definition location and specification (thanks, Jens Maurer!).</p>
      <li data-md>
       <p>Remove prose for <code class="highlight"><c- n>inout_ptr</c-></code> and <code class="highlight"><c- n>out_ptr</c-></code> functions and instead use an example;</p>
      <li data-md>
       <p>Use "Preconditions:" clauses on both pointers to solve for the <code class="highlight"><c- b>void</c-><c- o>**</c-></code> conversion problem. Add a note to say that an implementation may use an implementation of <code class="highlight"><c- k>reinterpret_cast</c-></code> or a union with <code class="highlight"><c- b>void</c-><c- o>*</c-></code>, so that implementers are gently encouraged to use <code class="highlight"><c- k>reinterpret_cast</c-></code> for performance reasons where possible;</p>
      <li data-md>
       <p>Created a <code class="highlight"><c- n>release</c-><c- o>-</c-><c- n>statement</c-></code> definition to switch on whether or not <code class="highlight"><c- p>.</c-><c- n>release</c-><c- p>()</c-></code> was called in the constructor vs. the destructor;</p>
      <li data-md>
       <p>We are using <code class="highlight"><c- nl>Mandates</c-><c- p>:</c-></code> clauses because the amount of specification effort here is painful to do EXACTLY properly!</p>
      <li data-md>
       <p>Make sure there’s a proper <code class="highlight"><c- n>otherwise</c-></code> in the bulleted lists; and,</p>
      <li data-md>
       <p>Remove <code class="highlight"><c- k>extern</c-></code> from global function parameters.</p>
     </ul>
    <li data-md>
     <p>"Why are the conversion operators <code class="highlight"><c- k>const</c-></code>" <a href="#design-casting-const">added to the design section</a>.</p>
    <li data-md>
     <p>Fix dark mode by-hand with some wonky CSS!</p>
   </ul>
   <h3 class="heading settled" data-level="1.2" id="changelog-r5ii"><span class="secno">1.2. </span><span class="content">Revision 6 - October 7th, 2019</span><a class="self-link" href="#changelog-r5ii"></a></h3>
   <ul>
    <li data-md>
     <p>Library Evolution Working Group roundtrip NOT done: additional trait like std::ranges to make it easier to reject patently wrong arguments.</p>
    <li data-md>
     <p>Will join its sister paper, <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>retain_ptr</c-></code> -- yay!</p>
    <li data-md>
     <p>Constructors are marked non-<code class="highlight"><c- k>noexcept</c-></code> to allow for implementations to strengthen them as per their implementation strategies. This includes leaving it non-<code class="highlight"><c- k>noexcept</c-></code> and forward-allocating <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code>'s control block in the constructor.</p>
   </ul>
   <h3 class="heading settled" data-level="1.3" id="changelog-r5"><span class="secno">1.3. </span><span class="content">Revision 5 - July 10th, 2019</span><a class="self-link" href="#changelog-r5"></a></h3>
   <ul>
    <li data-md>
     <p>Add back <code class="highlight"><c- b>void</c-><c- o>**</c-></code> conversion after users voiced legitimate concerns about not being able to properly handle <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>Base</c-><c- o>></c-></code> -> <code class="highlight"><c- n>out_ptr</c-><c- o>&lt;</c-><c- n>Derived</c-><c- o>*></c-></code> -> <code class="highlight"><c- b>void</c-><c- o>**</c-></code> functions, a common part of COM interfaces. This is explained in detail at the end of <a href="#design-casting-void">§ 3.5.1 Casting Support: easy void** support</a>.</p>
    <li data-md>
     <p>Get benchmarks with both the unconditional noexcept and conditional noexcept code, particularly with non-<code class="highlight"><c- k>noexcept</c-></code> <code class="highlight"><c- n>reset</c-></code> calls (e.g. with <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code>). Results show it does not matter for the happy path, and therefore is being reverted.</p>
    <li data-md>
     <p>Prepare for a trip back to LEWG to answer the unconditional <code class="highlight"><c- k>noexcept</c-></code> vs. conditional <code class="highlight"><c- k>noexcept</c-></code>, favoring unconditional <code class="highlight"><c- k>noexcept</c-></code>.</p>
   </ul>
   <h3 class="heading settled" data-level="1.4" id="changelog-r4"><span class="secno">1.4. </span><span class="content">Revision 4 - June 17th, 2019</span><a class="self-link" href="#changelog-r4"></a></h3>
   <ul>
    <li data-md>
     <p>Remove default <code class="highlight"><c- b>void</c-><c- o>**</c-></code> conversion after discussion with LEWG and Boost members.</p>
    <li data-md>
     <p>Forwarded to LWG: just needs to be wording approved now!</p>
   </ul>
   <h3 class="heading settled" data-level="1.5" id="changelog-r3"><span class="secno">1.5. </span><span class="content">Revision 3 - January 21st, 2019</span><a class="self-link" href="#changelog-r3"></a></h3>
   <ul>
    <li data-md>
     <p>Add details discussing upcoming implementations in <a href="#experience">§ 4 Implementation Experience</a>.</p>
    <li data-md>
     <p>Add section about implementation churn.</p>
    <li data-md>
     <p>Add details about flow control statements and temporary evaluation for <a href="#design-footguns">§ 3.7 Footguns?</a>.</p>
    <li data-md>
     <p>Wording is now relative to <a data-link-type="biblio" href="#biblio-n4820">[n4820]</a>, the latest working draft of the C++ Standard.</p>
   </ul>
   <h3 class="heading settled" data-level="1.6" id="changelog-r2"><span class="secno">1.6. </span><span class="content">Revision 2 - November 26th, 2018</span><a class="self-link" href="#changelog-r2"></a></h3>
   <ul>
    <li data-md>
     <p>Add <a href="#design-footguns">§ 3.7 Footguns?</a> section.</p>
    <li data-md>
     <p>Discuss implementation experience in more detail.</p>
    <li data-md>
     <p>Add exception inspection and reasoning.</p>
    <li data-md>
     <p>Add additional design decision information about customization points.</p>
   </ul>
   <h3 class="heading settled" data-level="1.7" id="changelog-r1"><span class="secno">1.7. </span><span class="content">Revision 1 - October 7th, 2018</span><a class="self-link" href="#changelog-r1"></a></h3>
   <ul>
    <li data-md>
     <p>Add wording. Incorporate wording feedback. Eliminate CTAD design. Add a few more words about implementation experience.</p>
   </ul>
   <h3 class="heading settled" data-level="1.8" id="changelog-r0"><span class="secno">1.8. </span><span class="content">Revision 0</span><a class="self-link" href="#changelog-r0"></a></h3>
   <ul>
    <li data-md>
     <p>Initial release.</p>
   </ul>
   <h2 class="heading settled" data-level="2" id="motivation"><span class="secno">2. </span><span class="content">Motivation</span><a class="self-link" href="#motivation"></a></h2>
   <blockquote>
    <p>You’re right that code shouldn’t be using shared_ptr, I was trying to make it work with as little change as possible but after that and other more recent problems I’m finding a huge refactoring less and less avoidable. I’ll make sure to turn everything into unique_ptr (there is no shared ownership anyways).</p>
    <p>Your out_ptr will still be massively helpful. — <em>King_DuckZ, September 25th, 2018</em></p>
   </blockquote>
   <p>This library automates the <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>(...)</c-></code> and -- sometimes additionally -- the <code class="highlight"><c- p>.</c-><c- n>release</c-><c- p>()</c-></code> call for smart pointers when interfacing with <code class="highlight"><c- n>T</c-><c- o>**</c-></code> output arguments.</p>
   <table>
    <tbody>
     <tr>
      <th colspan="2">Shared Code
     <tr>
      <td colspan="2">
        <a href="http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/avformat.h;h=fdaffa5bf41b6ed83fa4f7acebcf04ed796296fd;hb=refs/heads/master">From libavformat</a> 
<pre class="language-cpp highlight"><c- cp>#include</c-> &lt;memory>
<c- cp>#include</c-> &lt;avformat.h>

<c- k>struct</c-> <c- nc>AVFormatContextDeleter</c-> <c- p>{</c->
		<c- b>void</c-> <c- nf>operator</c-><c- p>()</c-> <c- p>(</c-><c- n>AVFormatContext</c-><c- o>*</c-> <c- n>c</c-><c- p>)</c-> <c- k>const</c-> <c- k>noexcept</c-> <c- p>{</c->
			<c- n>avformat_close_input</c-><c- p>(</c-><c- o>&amp;</c-><c- n>c</c-><c- p>);</c->
			<c- n>avformat_free_context</c-><c- p>(</c-><c- n>c</c-><c- p>);</c->
		<c- p>}</c->
<c- p>};</c->
<c- k>using</c-> <c- n>av_format_context_ptr</c-> <c- o>=</c-> <c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>AVFormatContext</c-><c- p>,</c-> <c- n>AVFormatContextDeleter</c-><c- o>></c-><c- p>;</c->
<c- c1>// Signature from libavformat:</c->
<c- c1>// int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options);</c->
</pre>
     <tr>
      <th>Current Code
      <th>With Proposal
     <tr>
      <td>
<pre class="language-cpp highlight"><c- b>int</c-> <c- nf>main</c-> <c- p>(</c-><c- b>int</c-><c- p>,</c-> <c- b>char</c-><c- o>*</c-> <c- n>argv</c-><c- p>[])</c-> <c- p>{</c->
	<c- n>av_format_context_ptr</c-> <c- n>context</c-><c- p>(</c-><c- n>avformat_alloc_context</c-><c- p>());</c->
	<c- c1>// ...</c->
	<c- c1>// used, need to reopen</c->
	<c- n>AVFormatContext</c-><c- o>*</c-> <c- n>raw_context</c-> <c- o>=</c-> <c- n>context</c-><c- p>.</c-><c- n>release</c-><c- p>();</c->
	<c- k>if</c-> <c- p>(</c-><c- n>avformat_open_input</c-><c- p>(</c-><c- o>&amp;</c-><c- n>raw_context</c-><c- p>,</c-> 
		<c- n>argv</c-><c- p>[</c-><c- mi>0</c-><c- p>],</c-> <c- k>nullptr</c-><c- p>,</c-> <c- k>nullptr</c-><c- p>)</c-> <c- o>!=</c-> <c- mi>0</c-><c- p>)</c-> <c- p>{</c->
		<c- n>std</c-><c- o>::</c-><c- n>stringstream</c-> <c- n>ss</c-><c- p>;</c->
		<c- n>ss</c-> <c- o>&lt;&lt;</c-> <c- s>"ffmpeg_image_loader could not open file '"</c->
			<c- o>&lt;&lt;</c-> <c- n>path</c-> <c- o>&lt;&lt;</c-> <c- s>"'"</c-><c- p>;</c->
		<c- k>throw</c-> <c- n>FFmpegInputException</c-><c- p>(</c-><c- n>ss</c-><c- p>.</c-><c- n>str</c-><c- p>().</c-><c- n>c_str</c-><c- p>());</c->
	<c- p>}</c->
	<c- n>context</c-><c- p>.</c-><c- n>reset</c-><c- p>(</c-><c- n>raw_context</c-><c- p>);</c->

	<c- c1>// ... off to the races !</c->

	<c- k>return</c-> <c- mi>0</c-><c- p>;</c->
<c- p>}</c->
</pre>
      <td>
<pre class="language-cpp highlight"><c- b>int</c-> <c- nf>main</c-> <c- p>(</c-><c- b>int</c-><c- p>,</c-> <c- b>char</c-><c- o>*</c-> <c- n>argv</c-><c- p>[])</c-> <c- p>{</c->
	<c- n>av_format_context_ptr</c-> <c- n>context</c-><c- p>(</c-><c- n>avformat_alloc_context</c-><c- p>());</c->
	<c- c1>// ...</c->
	<c- c1>// used, need to reopen</c->

	<c- k>if</c-> <c- p>(</c-><c- n>avformat_open_input</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-><c- p>(</c-><c- n>context</c-><c- p>),</c-> 
		<c- n>argv</c-><c- p>[</c-><c- mi>0</c-><c- p>],</c-> <c- k>nullptr</c-><c- p>,</c-> <c- k>nullptr</c-><c- p>)</c-> <c- o>!=</c-> <c- mi>0</c-><c- p>)</c-> <c- p>{</c->
		<c- n>std</c-><c- o>::</c-><c- n>stringstream</c-> <c- n>ss</c-><c- p>;</c->
		<c- n>ss</c-> <c- o>&lt;&lt;</c-> <c- s>"ffmpeg_image_loader could not open file '"</c->
			<c- o>&lt;&lt;</c-> <c- n>argv</c-><c- p>[</c-><c- mi>0</c-><c- p>]</c-> <c- o>&lt;&lt;</c-> <c- s>"'"</c-><c- p>;</c->
		<c- k>throw</c-> <c- n>FFmpegInputException</c-><c- p>(</c-><c- n>ss</c-><c- p>.</c-><c- n>str</c-><c- p>().</c-><c- n>c_str</c-><c- p>());</c->
	<c- p>}</c->


	<c- c1>// ... off to the races!</c->

	<c- k>return</c-> <c- mi>0</c-><c- p>;</c->
<c- p>}</c->
</pre>
   </table>
   <p>We have very good tools for handling unique and shared resource semantics, alongside more coming with <a data-link-type="biblio" href="#biblio-p0468">Intrusive Smart Pointers</a>. Independently between several different companies, studios, and shops -- from VMWare and Microsoft to small game development startups -- a common type has been implemented. It has many names: <code class="highlight"><c- n>ptrptr</c-></code>, <code class="highlight"><c- n>OutPtr</c-></code>, <code class="highlight"><c- n>PtrToPtr</c-></code>, <code class="highlight"><c- n>out_ptr</c-></code>, <a data-link-type="biblio" href="#biblio-wrl-comptrref">WRL::ComPtrRef</a>, <a data-link-type="biblio" href="#biblio-std-proposals-overload-operator">a proposal on std-proposals</a> and even <a data-link-type="biblio" href="#biblio-c-com-ptr">unary operator&amp; on ccomptr</a>. It is universally focused on one task: making it so a smart pointer can be passed as a parameter to a function which uses an output pointer parameter in C API functions (e.g., <code class="highlight"><c- n>my_type</c-><c- o>**</c-></code>).</p>
   <p>This paper is a culmination of a private survey of types from the industry to propose a common, future-proof, high-performance <code class="highlight"><c- n>out_ptr</c-></code> type that is easy to use. It makes interop with pointer types a little bit simpler and easier for everyone who has ever wanted something like <code class="highlight"><c- n>my_c_function</c-><c- p>(</c-> <c- o>&amp;</c-><c- n>my_unique</c-> <c- p>);</c-></code> to behave properly.</p>
   <p>In short: it’s a thing convertible to a <code class="highlight"><c- n>T</c-><c- o>**</c-></code> that updates (with a reset call or semantically equivalent behavior) the smart pointer it is created with when it goes out of scope.</p>
   <h2 class="heading settled" data-level="3" id="design"><span class="secno">3. </span><span class="content">Design Considerations</span><a class="self-link" href="#design"></a></h2>
   <p>The core of <code class="highlight"><c- n>out_ptr</c-></code>'s (and <code class="highlight"><c- n>inout_ptr</c-></code>'s) design revolves around avoiding the mistakes of the past, preventing continual modification of new smart pointers and outside smart pointers’s interfaces to perform the same task, and enabling some degree of performance efficiency without having to wrap every C API function.</p>
   <h3 class="heading settled" data-level="3.1" id="design-synopsis"><span class="secno">3.1. </span><span class="content">Synopsis</span><a class="self-link" href="#design-synopsis"></a></h3>
   <p>The function template’s full specification is:</p>
<pre class="language-cpp highlight"><c- k>namespace</c-> <c- n>std</c-> <c- p>{</c->
	<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Pointer</c-> <c- o>=</c-> <c- b>void</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- n>out_ptr_t</c-><c- o>&lt;</c-><c- n>Smart</c-><c- p>,</c-> <c- n>conditional_t</c-><c- o>&lt;</c-><c- n>is_void_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>></c-><c- p>,</c-> <c- n>POINTER_OF</c-><c- p>(</c-><c- n>Smart</c-><c- p>),</c-> <c- n>Pointer</c-><c- o>></c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-><c- o>></c-> 
	<c- n>out_ptr</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>)</c-> <c- k>noexcept</c-><c- p>;</c->
	
	<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Pointer</c-> <c- o>=</c-> <c- b>void</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- n>inout_ptr_t</c-><c- o>&lt;</c-><c- n>Smart</c-><c- p>,</c-> <c- n>conditional_t</c-><c- o>&lt;</c-><c- n>is_void_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>></c-><c- p>,</c-> <c- n>POINTER_OF</c-><c- p>(</c-><c- n>Smart</c-><c- p>),</c-> <c- n>Pointer</c-><c- o>></c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-><c- o>></c->
	<c- n>inout_ptr</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>)</c-> <c- k>noexcept</c-><c- p>;</c->
<c- p>}</c->
</pre>
   <p>Where <code class="highlight"><c- n>POINTER_OF</c-></code> is the <code class="highlight"><c- o>::</c-><c- n>pointer</c-></code> type, then the <code class="highlight"><c- o>::</c-><c- n>element_type</c-><c- o>*</c-></code> type, then <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>pointer_traits</c-><c- o>&lt;</c-><c- n>Smart</c-><c- o>>::</c-><c- n>element_type</c-><c- o>*</c-></code> type in that order. The return type <code class="highlight"><c- n>out_ptr_t</c-></code> and its sister type <code class="highlight"><c- n>inout_ptr_t</c-></code> are templated types and must at-minimum have the following:</p>
<pre class="language-cpp highlight"><c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Pointer</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
<c- k>class</c-> <c- nc>out_ptr_t</c-> <c- p>{</c->
<c- k>public</c-><c- o>:</c->
	<c- n>out_ptr_t</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-><c- p>,</c-> <c- n>Args</c-><c- p>...)</c-> <c- k>noexcept</c-><c- p>(</c-><c- d>/* conditional */</c-><c- p>);</c->
	<c- o>~</c-><c- n>out_ptr_t</c-> <c- p>();</c->
	<c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-> <c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c-> 
	<c- k>operator</c-> <c- b>void</c-><c- o>**</c-> <c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
	<c- c1>// ^ only if Pointer != void*</c->
<c- p>};</c->

<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Pointer</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
<c- k>class</c-> <c- nc>inout_ptr_t</c-> <c- p>{</c->
<c- k>public</c-><c- o>:</c->
	<c- n>inout_ptr_t</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-><c- p>,</c-> <c- n>Args</c-><c- p>...)</c-> <c- k>noexcept</c-><c- p>(</c-><c- d>/* conditional */</c-><c- p>);</c->
	<c- o>~</c-><c- n>inout_ptr_t</c-> <c- p>();</c->
	<c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-> <c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
	<c- k>operator</c-> <c- b>void</c-><c- o>**</c-> <c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
	<c- c1>// ^ only if Pointer != void*</c->
<c- p>};</c->
</pre>
   <p>We specify "at minimum" because we expect users to override this type for their own shared, unique, handle-alike, reference-counting, and etc. smart pointers. The destructor of <code class="highlight"><c- o>~</c-><c- n>out_ptr_t</c-><c- p>()</c-></code> calls <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> on the stored smart pointer of type <code class="highlight"><c- n>Smart</c-></code> with the stored pointer of type <code class="highlight"><c- n>Pointer</c-></code> and arguments stored as <code class="highlight"><c- n>Args</c-><c- p>...</c-></code>. <code class="highlight"><c- o>~</c-><c- n>inout_ptr_t</c-><c- p>()</c-></code> does the same, but with the additional caveat that the constructor for <code class="highlight"><c- n>inout_ptr_t</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...)</c-></code> also calls <code class="highlight"><c- p>.</c-><c- n>release</c-><c- p>()</c-></code>, so that a <code class="highlight"><c- n>reset</c-></code> doesn’t double-delete a pointer that the expected re-allocating API used with <code class="highlight"><c- n>inout_ptr</c-></code> already handles.</p>
   <p>We chose this extension point because the other options (ADL extension, friend ADL extension) have proven to not be very feasible in the long run of maintainability. While we are wary that users open up namespace <code class="highlight"><c- n>std</c-></code> we also recognize that it is essentially the best way that someone can extend this type to pointers and handles that are _not_ part of the standard. If this only works with standard types -- and only standard types that are explicitly sanctioned -- then this type is almost certainly not worth it. See <a href="#design-extension">§ 3.8 Extension Points</a> for more details.</p>
   <h3 class="heading settled" data-level="3.2" id="design-overview"><span class="secno">3.2. </span><span class="content">Overview</span><a class="self-link" href="#design-overview"></a></h3>
   <p><code class="highlight"><c- n>out_ptr</c-></code>/<code class="highlight"><c- n>inout_ptr</c-></code> are free functions meant to be used for C APIs:</p>
<pre class="language-cpp highlight"><c- n>error_num</c-> <c- nf>c_api_create_handle</c-><c- p>(</c-><c- b>int</c-> <c- n>seed_value</c-><c- p>,</c-> <c- b>int</c-><c- o>**</c-> <c- n>p_handle</c-><c- p>);</c->
<c- n>error_num</c-> <c- nf>c_api_re_create_handle</c-><c- p>(</c-><c- b>int</c-> <c- n>seed_value</c-><c- p>,</c-> <c- b>int</c-><c- o>**</c-> <c- n>p_handle</c-><c- p>);</c->
<c- b>void</c-> <c- nf>c_api_delete_handle</c-><c- p>(</c-><c- b>int</c-><c- o>*</c-> <c- n>handle</c-><c- p>);</c->

<c- k>struct</c-> <c- nc>resource_deleter</c-> <c- p>{</c->
	<c- b>void</c-> <c- nf>operator</c-><c- p>()(</c-> <c- b>int</c-><c- o>*</c-> <c- n>handle</c-> <c- p>)</c-> <c- p>{</c->
		<c- n>c_api_delete_handle</c-><c- p>(</c-><c- n>handle</c-><c- p>);</c->
	<c- p>}</c->
<c- p>};</c->
</pre>
   <p>Given a smart pointer, it can be used like so:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- p>,</c-> <c- n>resource_deleter</c-><c- o>></c-> <c- n>resource</c-><c- p>(</c-><c- k>nullptr</c-><c- p>);</c->
<c- n>error_num</c-> <c- n>err</c-> <c- o>=</c-> <c- n>c_api_create_handle</c-><c- p>(</c->
	<c- mi>24</c-><c- p>,</c-> <c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- p>(</c-><c- n>resource</c-><c- p>)</c->
<c- p>);</c->
<c- k>if</c-> <c- p>(</c-><c- n>err</c-> <c- o>==</c-> <c- n>C_API_ERROR_CONDITION</c-><c- p>)</c-> <c- p>{</c->
	<c- c1>// handle errors</c->
<c- p>}</c->
<c- c1>// resource.get() the out-value from the C API function</c->
</pre>
   <p>Or, in the re-create (reallocation) case:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- p>,</c-> <c- n>resource_deleter</c-><c- o>></c-> <c- n>resource</c-><c- p>(</c-><c- k>nullptr</c-><c- p>);</c->
<c- n>error_num</c-> <c- n>err</c-> <c- o>=</c-> <c- n>c_api_re_create_handle</c-><c- p>(</c->
	<c- mi>24</c-><c- p>,</c-> <c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-><c- p>(</c-><c- n>resource</c-><c- p>)</c->
<c- p>);</c->
<c- k>if</c-> <c- p>(</c-><c- n>err</c-> <c- o>==</c-> <c- n>C_API_ERROR_CONDITION</c-><c- p>)</c-> <c- p>{</c->
	<c- c1>// handle errors</c->
<c- p>}</c->
<c- c1>// resource.get() the out-value from the C API function</c->
</pre>
   <h3 class="heading settled" data-level="3.3" id="design-safety"><span class="secno">3.3. </span><span class="content">Safety</span><a class="self-link" href="#design-safety"></a></h3>
   <p>This implementation uses a pack of <code class="highlight"><c- p>...</c-><c- n>Args</c-></code> in the signature of <code class="highlight"><c- n>out_ptr</c-></code> to allow it to be used with other types whose <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> functions may require more than just the pointer value to form a valid and proper smart pointer. This is the case with <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> and <code class="highlight"><c- n>boost</c-><c- o>::</c-><c- n>shared_ptr</c-></code>:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- o>></c-> <c- n>resource</c-><c- p>(</c-><c- k>nullptr</c-><c- p>);</c->
<c- n>error_num</c-> <c- n>err</c-> <c- o>=</c-> <c- n>c_api_create_handle</c-><c- p>(</c->
	<c- mi>24</c-><c- p>,</c-> <c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- p>(</c-><c- n>resource</c-><c- p>,</c-> <c- n>resource_deleter</c-><c- p>{})</c->
<c- p>);</c->
<c- k>if</c-> <c- p>(</c-><c- n>err</c-> <c- o>==</c-> <c- n>C_API_ERROR_CONDITION</c-><c- p>)</c-> <c- p>{</c->
	<c- c1>// handle errors</c->
<c- p>}</c->
<c- c1>// resource.get() the out-value from </c->
<c- c1>// the C API function</c->
</pre>
   <p>Additional arguments past the smart pointer stored in <code class="highlight"><c- n>out_ptr</c-></code>'s return type will perfectly forward these to whatever <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> or equivalent implementation requires them. If the underlying pointer does not require such things, it may be ignored or discarded (optionally, with a compiler error using a static assert that the argument will be ignored for the given type of smart pointer).</p>
   <p>Of importance here is to note that <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> can and will overwrite any custom deleter present when called with just <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>(</c-><c- n>some_pointer</c-><c- p>);</c-></code>. Therefore, we make it a compiler error to not pass in a second argument when using <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> without a deleter:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- o>></c-> <c- n>resource</c-><c- p>(</c-><c- k>nullptr</c-><c- p>);</c->
<c- n>error_num</c-> <c- n>err</c-> <c- o>=</c-> <c- n>c_api_create_handle</c-><c- p>(</c->
	<c- mi>42</c-><c- p>,</c-> <c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- p>(</c-><c- n>resource</c-><c- p>)</c->
<c- p>);</c-> <c- c1>// ERROR: deleter was changed </c->
   <c- c1>// to an equivalent of </c->
   <c- c1>// std::default_delete!</c->
</pre>
   <p>It is likely the intent of the programmer to also pass the fictional <code class="highlight"><c- n>c_api_delete_handle</c-></code> function to this: the above constraint allows us to avoid such programmer mistakes.</p>
   <h3 class="heading settled" data-level="3.4" id="design-exceptions"><span class="secno">3.4. </span><span class="content">Exception Safety</span><a class="self-link" href="#design-exceptions"></a></h3>
   <p>This is two-fold. First, by placing the <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> call into the destructor of <code class="highlight"><c- n>out_ptr</c-></code>/<code class="highlight"><c- n>inout_ptr</c-></code>, we can guarantee safety that trivial code does not have. For example, consider this abstracted form of the production code shown in the Tony Table:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- o>></c-> <c- n>num</c-><c- p>(</c-><c- k>new</c-> <c- b>int</c-><c- p>());</c->
<c- c1>// use, then have to prepare for some </c->
<c- c1>// c_api call</c->
<c- b>int</c-><c- o>*</c-> <c- n>raw_num</c-> <c- o>=</c-> <c- n>num</c-><c- p>.</c-><c- n>release</c-><c- p>();</c->
<c- k>if</c-> <c- p>(</c-><c- n>my_c_api_call</c-><c- p>(</c-><c- o>&amp;</c-><c- n>raw_num</c-><c- p>)</c-> <c- o>!=</c-> <c- mi>0</c-><c- p>)</c-> <c- p>{</c->
	<c- c1>// leak if the c api call does nothing!!</c->
	<c- k>throw</c-> <c- n>std</c-><c- o>::</c-><c- n>runtime_error</c-><c- p>(</c-><c- s>"leaking memory!"</c-><c- p>);</c->
<c- p>}</c->
<c- n>num</c-><c- p>.</c-><c- n>reset</c-><c- p>(</c-><c- n>raw_num</c-><c- p>);</c->
</pre>
   <p>If the user used <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code>, the value would be guaranteed to put back into the unique pointer, and then subsequently destroyed as the stack continued to be unwound.</p>
   <p>Secondly, the destructor for <code class="highlight"><c- n>out_ptr</c-></code> calls to <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code>. The only case where this is questionable is with <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code>: the creation of the passed-in deleter might throw, and thusly the call cannot be <code class="highlight"><c- k>noexcept</c-></code>. This means that the destructor might throw if <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c->'<c- n>s</c-></code> <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> throws: in this case, <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>terminate</c-></code> would be called.</p>
   <p>In practice, this has not been observed (or reported). Still, the C++ standard makes guarantees for code even if the situation is never encountered in the real world: for this, it is much more palatable to go with the status quo and stick to the policies established by LEWG and LWG regarding throwing until such a policy is overturned.</p>
   <p>Additionally, functions which have a non-<code class="highlight"><c- k>noexcept</c-></code> reset function are guaranteed to delete the resource before releasing the exception, as is specified in e.g. <a href="http://eel.is/c++draft/util.smartptr.shared.const">[util.smartptr.shared.const</a>]. This means that it is the responsibility of the pointer to release any resources once their <code class="highlight"><c- n>reset</c-><c- p>(...)</c-></code> (or equivalent) function is successfully called.</p>
   <p>Finally, the original design had an unconditionally <code class="highlight"><c- k>noexcept</c-></code> constructor. It has been suggested that the constructor be non-noexcept, and to allow an implementation to prevent throwing in the destructor by forward-allocating any necessary internal storage for the <code class="highlight"><c- n>reset</c-></code> operation (for example, the control block of a <code class="highlight"><c- n>shared_ptr</c-></code>) in the constructor. This would prevent termination from happening in the destructor when a common non-noexcept <code class="highlight"><c- n>reset</c-></code> call is invoked. LEWG has voted in favor of this change.</p>
   <h3 class="heading settled" data-level="3.5" id="design-casting"><span class="secno">3.5. </span><span class="content">Casting Support</span><a class="self-link" href="#design-casting"></a></h3>
   <p>There are also many APIs (COM-style APIs, base-class handle APIs, type-erasure APIs) where the initialization requires that the type passed to the function is of some fundamental (<code class="highlight"><c- b>void</c-><c- o>**</c-></code>) or base type that does not reflect what is stored exactly in the pointer. Therefore, it is necessary to sometimes specify what the underlying type <code class="highlight"><c- n>out_ptr</c-></code> uses is stored as.</p>
   <p>It is also important to note that going in the <em>opposite</em> direction is also highly desirable, especially in the case of doing API-hiding behind an e.g. <code class="highlight"><c- b>void</c-><c- o>*</c-></code> implementation. <code class="highlight"><c- n>out_ptr</c-></code> supports both scenarios with an optional template argument to the function call.</p>
   <h4 class="heading settled" data-level="3.5.1" id="design-casting-void"><span class="secno">3.5.1. </span><span class="content">Casting Support: easy <code class="highlight"><c- b>void</c-><c- o>**</c-></code> support</span><a class="self-link" href="#design-casting-void"></a></h4>
   <p>Consider this DirectX Graphics Infrastructure Interface (DXGI) function on <code class="highlight"><c- n>IDXGIFactory6</c-></code>:</p>
<pre class="language-cpp highlight"><c- n>HRESULT</c-> <c- nf>EnumAdapterByGpuPreference</c-><c- p>(</c->
	<c- n>UINT</c-> <c- n>Adapter</c-><c- p>,</c-> 
	<c- n>DXGI_GPU_PREFERENCE</c-> <c- n>GpuPreference</c-><c- p>,</c-> 
	<c- n>REFIID</c-> <c- n>riid</c-><c- p>,</c-> 
	<c- b>void</c-><c- o>**</c-> <c- n>ppvAdapter</c->
<c- p>);</c->
</pre>
   <p>Using <code class="highlight"><c- n>out_ptr</c-></code>, it becomes trivial to interface with it using an exemplary <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>IDXGIAdapter</c-><c- p>,</c-> <c- n>ComDeleter</c-><c- o>></c-> <c- n>adapter</c-></code>:</p>
<pre class="language-cpp highlight"><c- n>HRESULT</c-> <c- n>result</c-> <c- o>=</c-> <c- n>dxgi_factory</c-><c- p>.</c->
<c- n>EnumAdapterByGpuPreference</c-><c- p>(</c-><c- mi>0</c-><c- p>,</c-> 
	<c- n>DXGI_GPU_PREFERENCE_MINIMUM_POWER</c-><c- p>,</c-> 
	<c- n>IID_IDXGIAdapter</c-><c- p>,</c-> 
	<c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- p>(</c-><c- n>adapter</c-><c- p>)</c->
<c- p>);</c->
<c- k>if</c-> <c- p>(</c-><c- n>FAILED</c-><c- p>(</c-><c- n>result</c-><c- p>))</c-> <c- p>{</c->
	<c- c1>// handle errors</c->
<c- p>}</c->
<c- c1>// adapter.get() contains strongly-typed pointer</c->
</pre>
   <p>No manual casting, <code class="highlight"><c- p>.</c-><c- n>release</c-><c- p>()</c-></code> fiddling, or <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> is required: the returned type from <code class="highlight"><c- n>out_ptr</c-></code> handles that. This is because the <code class="highlight"><c- n>out_ptr_t</c-></code> and <code class="highlight"><c- n>inout_ptr_t</c-></code> types have conversion operations to not only the detected <code class="highlight"><c- o>::</c-><c- n>pointer</c-></code> or <code class="highlight"><c- o>::</c-><c- n>element_type</c-><c- o>*</c-></code> of the smart pointer, but a <code class="highlight"><c- k>reinterpret_cast</c-></code> conversion to <code class="highlight"><c- b>void</c-><c- o>*</c-></code> as well. While the size of <code class="highlight"><c- b>void</c-><c- o>*</c-></code> is not required by the C++ standard to be the same as the size of any other types pointer (except <code class="highlight"><c- k>const</c-></code>/<code class="highlight"><c- k>volatile</c-></code> qualified <code class="highlight"><c- b>char</c-><c- o>*</c-></code>), most C APIs that use this technique have already sanctioned the conversion from whatever type the API works with to <code class="highlight"><c- b>void</c-><c- o>*</c-></code> and, subsequently, <code class="highlight"><c- b>void</c-><c- o>**</c-></code>.</p>
   <p>This idiom is also useful for the <code class="highlight"><c- n>QueryInterface</c-></code> base function for COM’s <code class="highlight"><c- n>IUnknown</c-></code>, and for Vulkan’s <code class="highlight"><c- n>vkMapMemory</c-></code>.</p>
   <p>Note that the implicit <code class="highlight"><c- b>void</c-><c- o>**</c-></code> conversion is important for more than just easy interaction with Windows or COM APIs: it is commonplace to store a pointer to a base class rather than a derived one. For example:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>ID3D11Device</c-><c- p>,</c-> <c- n>COMDeleter</c-><c- o>></c-> <c- n>g_d11_device</c-><c- p>;</c->

<c- b>int</c-> <c- nf>main</c-> <c- p>()</c-> <c- p>{</c->
	<c- n>init_global_device</c-><c- p>();</c->

	<c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>IUnknown</c-><c- p>,</c-> <c- n>COMDeleter</c-><c- o>></c-> <c- n>dxgi_device</c-><c- p>;</c->
	<c- n>IDXGIDevice</c-> <c- o>*</c-> <c- n>pDXGIDevice</c-><c- p>;</c->
	<c- n>HRESULT</c-> <c- n>hr</c-> <c- o>=</c-> <c- n>g_d11_device</c-><c- o>-></c-><c- n>QueryInterface</c-><c- p>(</c->
		<c- n>__uuidof</c-><c- p>(</c-><c- n>IDXGIDevice</c-><c- p>),</c-> 
		<c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- o>&lt;</c-><c- b>void</c-><c- o>*></c-><c- p>(</c-><c- n>pDXGIDevice</c-><c- p>));</c-> <c- c1>// !!</c->
	<c- k>if</c-> <c- p>(</c-><c- n>FAILED</c-><c- p>(</c-><c- n>hr</c-><c- p>))</c-> <c- p>{</c->
		<c- c1>// ...</c->
	<c- p>}</c->
	<c- c1>// ...</c->
	<c- k>return</c-> <c- mi>0</c-><c- p>;</c->
<c- p>}</c->
</pre>
   <p>The above code is actually wrong. <code class="highlight"><c- n>IUnknown</c-></code> cast to <code class="highlight"><c- b>void</c-><c- o>*</c-></code>, then passed as <code class="highlight"><c- b>void</c-><c- o>**</c-></code> to the function, creates a bad pointer because the <code class="highlight"><c- b>void</c-><c- o>**</c-></code> inside of the function call is cast directly to <code class="highlight"><c- n>IDXGIDevice</c-><c- o>**</c-></code> and dereferenced. This is incorrect because the original pointer is <code class="highlight"><c- n>IUnknown</c-></code>, and so member variables and the object’s virtual table will be completely skewed and out of place. The correct way is to write use <code class="highlight"><c- n>QueryInterface</c-></code> as so:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>ID3D11Device</c-><c- o>></c-> <c- n>g_d11_device</c-><c- p>;</c->

<c- b>int</c-> <c- nf>main</c-> <c- p>()</c-> <c- p>{</c->
	<c- n>init_global_device</c-><c- p>();</c->

	<c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>IUnknown</c-><c- o>></c-> <c- n>dxgi_device</c-><c- p>;</c->
	<c- n>IDXGIDevice</c-> <c- o>*</c-> <c- n>pDXGIDevice</c-><c- p>;</c->
	<c- n>HRESULT</c-> <c- n>hr</c-> <c- o>=</c-> <c- n>g_d11_device</c-><c- o>-></c-><c- n>QueryInterface</c-><c- p>(</c->
		<c- n>__uuidof</c-><c- p>(</c-><c- n>IDXGIDevice</c-><c- p>),</c-> 
		<c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- o>&lt;</c-><c- n>IDXGIDevice</c-><c- o>*></c-><c- p>(</c-><c- n>pDXGIDevice</c-><c- p>));</c->
	<c- k>if</c-> <c- p>(</c-><c- n>FAILED</c-><c- p>(</c-><c- n>hr</c-><c- p>))</c-> <c- p>{</c->
		<c- c1>// ...</c->
	<c- p>}</c->
	<c- c1>// ...</c->
	<c- k>return</c-> <c- mi>0</c-><c- p>;</c->
<c- p>}</c->
</pre>
   <p>This properly up-casts to the derived type, and then decays to the desired <code class="highlight"><c- b>void</c-><c- o>**</c-></code> and works properly. This problem was discovered when a version of <code class="highlight"><c- n>out_ptr</c-></code> not containing the <code class="highlight"><c- b>void</c-><c- o>**</c-></code> implicit conversion was shipped to customers who depended on this feature to do the correct base -> derived -> <code class="highlight"><c- b>void</c-><c- o>**</c-></code> conversion. Therefore, the original design was restored to keep it up to date.</p>
   <h4 class="heading settled" data-level="3.5.2" id="design-casting-similar"><span class="secno">3.5.2. </span><span class="content">Casting Support: to arbitrary <code class="highlight"><c- n>T</c-></code></span><a class="self-link" href="#design-casting-similar"></a></h4>
   <p>In many cases, there is a typical C structure or similar that C++ users are sanctioned to derive and extend with their own data, with the promise that as long as the pointed passed to the function has a base class or matching type. It also happens that someone needs to cast from a type-erased <code class="highlight"><c- b>void</c-><c- o>*</c-></code> to a more-derived type. There are also cases where the type stored in <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>T</c-><c- p>,</c-> <c- n>Deleter</c-><c- o>></c-></code> uses <code class="highlight"><c- n>Deleter</c-></code> to override the <code class="highlight"><c- o>::</c-><c- n>pointer</c-></code> type, making <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code> store the (fat, offset) <code class="highlight"><c- o>::</c-><c- n>pointer</c-></code> that is convertible to <code class="highlight"><c- n>T</c-><c- o>*</c-></code>.</p>
   <p>For example, one technique detailed by a graphics develop helped them make an agnostic <code class="highlight"><c- n>graphics_handle</c-></code> type: a type-erased pointer for DirectX or a regular integer for OpenGL. This requires casting from a chunk of type-erased storage to a more concrete <code class="highlight"><c- n>ID3D11Texture</c-><c- o>*</c-></code> or similar. Allowing for <code class="highlight"><c- n>out_ptr</c-></code> to work on that level was critical for its usage in these cases.</p>
   <p>It is imperative that the user be allowed to specify a casting parameter that the <code class="highlight"><c- n>out_ptr_t</c-></code>/<code class="highlight"><c- n>inout_ptr_t</c-></code>, and that is done by simply adding a type when calling the desired function. Consider a specialized <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- p>,</c-> <c- n>fd_deleter</c-><c- o>></c-></code> where <code class="highlight"><c- o>::</c-><c- n>pointer</c-></code> is a typedef to a special <code class="highlight"><c- n>fd</c-></code> type:</p>
<pre class="language-cpp highlight"><c- k>struct</c-> <c- nc>fd</c-> <c- p>{</c->
	<c- b>int</c-> <c- n>handle</c-><c- p>;</c->

	<c- n>fd</c-><c- p>()</c->
	<c- o>:</c-> <c- n>fd</c-><c- p>(</c-><c- k>nullptr</c-><c- p>)</c-> <c- p>{}</c->
	<c- n>fd</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>nullptr_t</c-><c- p>)</c->
	<c- o>:</c-> <c- n>handle</c-><c- p>(</c-><c- k>static_cast</c-><c- o>&lt;</c-><c- b>intptr_t</c-><c- o>></c-><c- p>(</c-><c- mi>-1</c-><c- p>))</c-> <c- p>{}</c->
	<c- n>fd</c-><c- p>(</c-><c- b>FILE</c-><c- o>*</c-> <c- n>f</c-><c- p>)</c->
<c- cp>#ifdef _WIN32</c->
	<c- o>:</c-> <c- n>handle</c-><c- p>(</c-><c- n>f</c-> <c- o>?</c-> <c- n>_fileno</c-><c- p>(</c-><c- n>f</c-><c- p>)</c-> <c- o>:</c-> <c- k>static_cast</c-><c- o>&lt;</c-><c- b>intptr_t</c-><c- o>></c-><c- p>(</c-><c- mi>-1</c-><c- p>)){</c->
<c- cp>#else</c->
	<c- o>:</c-> <c- n>handle</c-><c- p>(</c-><c- n>f</c-> <c- o>?</c-> <c- n>fileno</c-><c- p>(</c-><c- n>f</c-><c- p>)</c-> <c- o>:</c-> <c- k>static_cast</c-><c- o>&lt;</c-><c- b>intptr_t</c-><c- o>></c-><c- p>(</c-><c- mi>-1</c-><c- p>))</c-> <c- p>{</c->
<c- cp>#endif </c-><c- c1>// Windows</c->
	<c- p>}</c->

	<c- k>explicit</c-> <c- k>operator</c-> <c- b>bool</c-><c- p>()</c-> <c- k>const</c-><c- p>;</c->

	<c- b>bool</c-> <c- k>operator</c-><c- o>==</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>nullptr_t</c-><c- p>)</c-> <c- k>const</c-><c- p>;</c->
	<c- b>bool</c-> <c- k>operator</c-><c- o>!=</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>nullptr_t</c-><c- p>)</c-> <c- k>const</c-><c- p>;</c->
	<c- b>bool</c-> <c- k>operator</c-><c- o>==</c-><c- p>(</c-><c- k>const</c-> <c- n>fd</c-><c- o>&amp;</c-> <c- n>fd</c-><c- p>)</c-> <c- k>const</c-><c- p>;</c->
	<c- b>bool</c-> <c- k>operator</c-><c- o>!=</c-><c- p>(</c-><c- k>const</c-> <c- n>fd</c-><c- o>&amp;</c-> <c- n>fd</c-><c- p>)</c-> <c- k>const</c-><c- p>;</c->
<c- p>};</c->

<c- k>struct</c-> <c- nc>fd_deleter</c-> <c- p>{</c->
	<c- k>using</c-> <c- n>pointer</c-> <c- o>=</c-> <c- n>fd</c-><c- p>;</c->
	<c- b>void</c-> <c- nf>operator</c-><c- p>()(</c-><c- n>fd</c-> <c- n>des</c-><c- p>)</c-> <c- k>const</c-><c- p>;</c->
<c- p>};</c->
</pre>
   <p>Casting in this case is cumbersome and often error-prone to do properly when interfacing with C or C++ standard library facilities. It becomes trivial with <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code>:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- p>,</c-> <c- n>fd_deleter</c-><c- o>></c-> <c- n>my_unique_fd</c-><c- p>;</c->
<c- k>auto</c-> <c- n>err</c-> <c- o>=</c-> <c- n>fopen_s</c-><c- p>(</c-> <c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- o>&lt;</c-><c- b>FILE</c-><c- o>*></c-><c- p>(</c-><c- n>my_unique_fd</c-><c- p>),</c-> <c- s>"prod.csv"</c-><c- p>,</c-> <c- s>"rb"</c-> <c- p>);</c->
<c- c1>// check err, then work with raw fd</c->
</pre>
   <p>This is an example of a codebase which works primarily off of file descriptors, but wants to interop with the standard C and C++ libraries. The cast here is valid and properly opens the file, while the <code class="highlight"><c- n>fd</c-></code> type handles converting in and out of the type safely and seamlessly, without going through extra effort or having to interact more closely with the POSIX API. This makes it easy to perform interop with a "high-level" or "convertible" type, while still working with the desired "low-level" or "native" type.</p>
   <p>This also demonstrates <code class="highlight"><c- n>out_ptr</c-></code>'s ability to work with offset/fat/not-quite-exactly pointers, which are allowed by <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code> and the upcoming <a data-link-type="biblio" href="#biblio-p0468">std::retain_ptr</a>.</p>
   <p>The full example code for Windows and *Nix platforms is <a href="https://github.com/ThePhD/out_ptr/blob/master/examples/source/std.custom_unique_ptr.cpp">available as a compile-able example</a>.</p>
   <h4 class="heading settled" data-level="3.5.3" id="design-casting-const"><span class="secno">3.5.3. </span><span class="content">Casting Support: <code class="highlight"><c- k>const</c-></code> operators</span><a class="self-link" href="#design-casting-const"></a></h4>
   <p>The operators are marked <code class="highlight"><c- k>const</c-></code> because there exist C++03-style wrappers around functions that take their arguments by <code class="highlight"><c- k>const</c-> <c- n>T</c-><c- o>&amp;</c-></code>. This is normally fine, but when an intermediate value generated by <code class="highlight"><c- n>out_ptr</c-><c- p>(...)</c-></code> or <code class="highlight"><c- n>inout_ptr</c-><c- p>(...)</c-></code> is used, this means that the <code class="highlight"><c- n>inout_ptr_t</c-></code> or the <code class="highlight"><c- n>out_ptr_t</c-></code> object may be <code class="highlight"><c- k>const</c-></code>. If this is the case, then the abstraction fails under that usage if the operator is not <code class="highlight"><c- k>const</c-></code>.</p>
   <p>Furthermore, in a very shallow sense, the operation being performed here - return the pointer of the stored <code class="highlight"><c- n>Pointer</c-> <c- n>p</c-></code> value - is a <code class="highlight"><c- k>const</c-></code> operation. That an outside source dereferences the pointer and modifies the value can be considered immaterial to the object’s <code class="highlight"><c- k>const</c-></code>-ness, albeit that’s a philosophical debate of shallow vs. deep <code class="highlight"><c- k>const</c-></code> that is ultimately trumped by the use case presented above.</p>
   <h3 class="heading settled" data-level="3.6" id="design-realloc"><span class="secno">3.6. </span><span class="content">Reallocation Support</span><a class="self-link" href="#design-realloc"></a></h3>
   <p>In some cases, a function given a valid handle/pointer will delete that pointer on your behalf before performing an allocation in the same pointer. In these cases, just <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> is entirely redundant and dangerous because it will delete a pointer that it does not own. Therefore, there is a second abstraction called <code class="highlight"><c- n>inout_ptr</c-></code>, so aptly named because it is both an input (to be deleted) and an output (to be allocated post-delete). <code class="highlight"><c- n>inout_ptr</c-></code>'s semantics are exactly like <code class="highlight"><c- n>out_ptr</c-></code>'s, just with the additional requirement that it calls <code class="highlight"><c- p>.</c-><c- n>release</c-><c- p>()</c-></code> on the smart pointer upon constructing the temporary <code class="highlight"><c- n>inout_ptr_t</c-></code>.</p>
   <p>This can be heavily optimized in the case of <code class="highlight"><c- n>unique_ptr</c-></code>, but to do so from the outside requires Undefined Behavior or modification of the standard library. See <a href="#perf-inout_ptr">§ 5.2 For std::inout_ptr</a> for further explication.</p>
   <h3 class="heading settled" data-level="3.7" id="design-footguns"><span class="secno">3.7. </span><span class="content">Footguns?</span><a class="self-link" href="#design-footguns"></a></h3>
   <p>As far as we know and have designed this specification, <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code> and <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code> have no hidden or easy-to-access footguns for its intended usage. Originally, <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code> was going to potentially include a runtime parameter to encapsulate the behavior of <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code>: however, it was deemed much better design to separate the two out into separate functions. This also matched VMWare’s implementation experience with the type and generated far superior code. It also made it easier to know when to pick <code class="highlight"><c- n>out_ptr</c-></code> versus <code class="highlight"><c- n>inout_ptr</c-></code>: one is for regular allocations that just create something new, the other is for the case when you need to reallocate into the pointer and thusly can save some instructions.</p>
   <p>Furthermore, all examples of <code class="highlight"><c- n>out_ptr</c-></code>/<code class="highlight"><c- n>inout_ptr</c-></code> include usage as a temporary to a function call. Let us assume someone wanted to get sufficiently clever:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- b>int</c-><c- o>></c-> <c- n>u_ptr</c-><c- p>;</c->
<c- k>auto</c-> <c- n>op</c-> <c- o>=</c-> <c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- p>(</c-><c- n>u_ptr</c-><c- p>);</c->
<c- b>int</c-> <c- n>err</c-> <c- o>=</c-> <c- n>c_function_call</c-><c- p>(</c-><c- n>op</c-><c- p>);</c->
<c- k>if</c-> <c- p>(</c-><c- n>err</c-> <c- o>!=</c-> <c- mi>0</c-><c- p>)</c-> <c- p>{</c->
	<c- k>throw</c-> <c- n>std</c-><c- o>::</c-><c- n>runtime_error</c-><c- p>()</c->
<c- p>}</c->
</pre>
   <p>This still behaves the same: but, <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> will be called before the <code class="highlight"><c- n>unique_ptr</c-></code> goes out of scope. Unless the user performs extraordinary gymnastics to circumvent the typical lifetime of the factory-generated <code class="highlight"><c- n>out_ptr</c-></code>, there are no footguns in regular and general usage.</p>
   <p>The only other place where someone could be sufficiently clever is with a function call _and_ a flow control statement. For example, an <code class="highlight"><c- k>if</c-></code> statement that initializes something and also tests the smart pointer in that same <code class="highlight"><c- k>if</c-></code> statement will extend lifetimes in a very poor order:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>foo_handle</c-><c- p>,</c-> <c- n>foo_deleter</c-><c- o>></c-> <c- n>my_unique</c-><c- p>(</c-><c- k>nullptr</c-><c- p>);</c->

<c- k>if</c-> <c- p>(</c-><c- n>get_some_pointer</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- p>(</c-><c- n>my_unique</c-><c- p>));</c-> <c- n>my_unique</c-><c- p>))</c-> <c- p>{</c->
	<c- n>std</c-><c- o>::</c-><c- n>cout</c-> <c- o>&lt;&lt;</c-> <c- s>"yay"</c-> <c- o>&lt;&lt;</c-> <c- n>std</c-><c- o>::</c-><c- n>endl</c-><c- p>;</c->
<c- p>}</c->
<c- k>else</c-> <c- p>{</c->
	<c- n>std</c-><c- o>::</c-><c- n>cout</c-> <c- o>&lt;&lt;</c-> <c- s>"oh no"</c-> <c- o>&lt;&lt;</c-> <c- n>std</c-><c- o>::</c-><c- n>endl</c-><c- p>;</c->
<c- p>}</c->
</pre>
   <p>This happens whether the expression is chained with multiple comma/conditional expressions or if someone uses the new flow-control initializer statements. This is an unfortunately holdover of how temporaries are treated, and rather being fixed with flow control initializer statements the same quirky rules for the old <code class="highlight"><c- k>if</c-></code> were carried over.</p>
   <p>This was pointed out as strange, but we feel this is not much of a blocker for this proposal. All RAII-based, action-on-destroy resources suffer from this problem: it is neither a new nor novel problem. One does not use a <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>lock_guard</c-></code> in similar fashion to the snippet above; neither should <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code> be used to that effect. Even <a data-link-type="biblio" href="#biblio-old-new-thing-handle-proxy">Microsoft’s Raymond Chen</a> takes issues with temporary destructors and lifetimes in <code class="highlight"><c- k>if</c-></code> statements and similar, but takes that problem up with C++ in general, not the abstraction presented in the write up or here.</p>
   <p>In most cases, when working with C APIs, there are error numbers to check which are infinitely more reliable than testing the pointer. APIs would do better to switch to such a method, rather than relying on testing for the null state on a pointer. Which is another way of saying, the following code is still just fine:</p>
<pre class="language-cpp highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>foo_handle</c-><c- p>,</c-> <c- n>foo_deleter</c-><c- o>></c-> <c- n>my_unique</c-><c- p>(</c-><c- k>nullptr</c-><c- p>);</c->

<c- k>if</c-> <c- p>(</c-><c- k>auto</c-> <c- n>err</c-> <c- o>=</c-> <c- n>get_some_pointer</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- p>(</c-><c- n>my_unique</c-><c- p>));</c-> <c- n>err</c-> <c- o>==</c-> <c- mi>0</c-><c- p>))</c-> <c- p>{</c->
	<c- n>std</c-><c- o>::</c-><c- n>cout</c-> <c- o>&lt;&lt;</c-> <c- s>"yay"</c-> <c- o>&lt;&lt;</c-> <c- n>std</c-><c- o>::</c-><c- n>endl</c-><c- p>;</c->
<c- p>}</c->
<c- k>else</c-> <c- p>{</c->
	<c- n>std</c-><c- o>::</c-><c- n>cout</c-> <c- o>&lt;&lt;</c-> <c- s>"oh no"</c-> <c- o>&lt;&lt;</c-> <c- n>std</c-><c- o>::</c-><c- n>endl</c-><c- p>;</c->
<c- p>}</c->
</pre>
   <h3 class="heading settled" data-level="3.8" id="design-extension"><span class="secno">3.8. </span><span class="content">Extension Points</span><a class="self-link" href="#design-extension"></a></h3>
   <p>A number of extension points were considered for this proposal. We have purposefully selected the ability to specialize the class template because it is the most flexible approach that allows library authors outside of the <code class="highlight"><c- n>std</c-><c- o>::</c-></code> namespace customize their types to work properly. This proposal rose primarily out of seeing many _different_ kinds of smart pointers handled in many codebases, from hobby to industry, that are currently not covered (and likely not to be covered in the near future) by the standard. Therefore, an extension mechanism that is available to library authors and users seems to be the most efficient.</p>
   <p>It is also important that we limit the surface area in which the user can harm themselves and their users. ADL, for example, can cause supreme danger because the overloads of <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code> and <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code> are variadic forwarding templates which handle when a user might want to pass additional arguments to <code class="highlight"><c- n>offset_ptr</c-></code> or similar. This can be quite dangerous as it is ripe territory for ambiguities.</p>
   <p>Class template specialization requires exactly matching arguments and does not suffer from potential convertibility in which other solutions might pick wrong overloads or select the wrong extension call because of mixed-namespace arguments. It also prevents build breaks from being introduced in subtle and hard-to-catch ways. It is also much less likely for someone to try to apply <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>enable_if_t</c-></code> or Concept constraints on their template class specializations to resolve ambiguities because of the exact-matching feature, as opposed to functions where partial and full specialization are hazardous and error-prone to get right.</p>
   <p>Below are catalogued some explored and <strong>ultimately rejected</strong> customization points.</p>
   <h4 class="heading settled" data-level="3.8.1" id="design-extension-get-ref"><span class="secno">3.8.1. </span><span class="content">Rejected: just adding <code class="highlight"><c- n>get_ref</c-></code> to related non-shared pointers</span><a class="self-link" href="#design-extension-get-ref"></a></h4>
   <p>This solution seeks to resolve performance problems and reseating issues by having <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code> add a <code class="highlight"><c- n>T</c-><c- o>*&amp;</c-> <c- nf>get_ref</c-><c- p>();</c-></code> function on itself that an <code class="highlight"><c- n>inout_ptr</c-></code> solution or C function user might take advantage of. The problem is this breaks encapsulation over its knee and destroys and integrity the pointer value has from <code class="highlight"><c- n>unique_ptr</c-></code>'s invariant. Additionally, it means that all libraries have to provide a function on their types that they currently do not provide (and for very good reason). While tempting as low-hanging fruit, this is an extraordinary example of a simple design which has far-reaching, poor consequences.</p>
   <h4 class="heading settled" data-level="3.8.2" id="design-extension-addressof"><span class="secno">3.8.2. </span><span class="content">Rejected: adding <code class="highlight"><c- o>&amp;</c-><c- k>operator</c-></code> to this type</span><a class="self-link" href="#design-extension-addressof"></a></h4>
   <p>This is the same sin committed by Microsoft with <code class="highlight"><c- n>c</c-><c- o>-</c-><c- n>com</c-><c- o>-</c-><c- n>ptr</c-></code> that ushered in the age of <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>addressof</c-></code> with all due experience for Windows users. While proposed a few times throughout history (including in the early incubation tank of std-proposals), this is not a mistake the community should make twice.</p>
   <h4 class="heading settled" data-level="3.8.3" id="design-extension-adl"><span class="secno">3.8.3. </span><span class="content">Rejected: unrestricted ADL</span><a class="self-link" href="#design-extension-adl"></a></h4>
   <p><code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>swap</c-></code> works out fairly nicely as an extension point. Coming up with a fairly expansive name that is not as common as <code class="highlight"><c- n>swap</c-></code> and designating that to be the ADL extension point could be worth doing. Also creating callable Customization Point Objects that <code class="highlight"><c- k>using</c-> <c- n>std</c-><c- o>::</c-><c- n>the_func</c-></code> before calling <code class="highlight"><c- n>the_func</c-></code> in an unqualified manner is similar to the design decision ranges made.</p>
   <p>Unfortunately, ADL is also entirely unconstrained once opened up in this manner. It takes careful programming and perhaps a bit of SFINAE to ensure there are no collisions, especially in the "base cases" users might want to specialize for. This can lead to brittle code that breaks when we ship updates to the desired ADL extension point, or users that under or over-constrain their version of the function. It exposes too much surface area for the programmer to load not a footgun but a landmine that either their future selves, coworkers, or left-behind future colleagues might get lost on.</p>
   <p>It is a considerable contender but for the above reasons -- especially since <code class="highlight"><c- n>out_ptr</c-></code>/<code class="highlight"><c- n>inout_ptr</c-></code> need to have unconstrained variadic arguments to pass additional extra arguments to pointers like <code class="highlight"><c- n>boost</c-><c- o>::</c-></code>/<code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> or <code class="highlight"><c- n>boost</c-><c- o>::</c-><c- n>intrusive_ptr</c-></code> or the upcoming <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>retain_ptr</c-></code> -- it is rejected.</p>
   <h4 class="heading settled" data-level="3.8.4" id="design-extension-friends"><span class="secno">3.8.4. </span><span class="content">Rejected: restricted ADL using in-class friend functions</span><a class="self-link" href="#design-extension-friends"></a></h4>
   <p>At first, this idea is tempting. It is used in <a href="https://abseil.io">abseil</a> to e.g. provide hash customization and allows the implementer to access the internals of the pointer they are adding it to. Having a <code class="highlight"><c- k>static</c-> <c- k>friend</c-></code> function seems to cover the biggest risks (asides from template footguns in the previous section). In a world where building from source and owning your dependencies is ideal, or being able to freeze versions at will and edit code that you know is abandon-ware, this seems like the ideal solution that covers most use cases. It also seems to prevent the more naughty use cases of ADL.</p>
   <p>Unfortunately, this requires opt-in from every author of a library type. This means that either you fork the library to your own version and patch it, maintain a patch in the case of an author who does not deem you adding that extension point useful, or just own the library and stay up to date. While feasible for large teams that have bandwidth to spend on this problem, this is problematic for smaller teams and hobby developers. It is a good way to do extension, but it is a novel idea and only tested within a few libraries. There are also issues of legality when performing modification to headers and compiled code directly to support this idiom: <code class="highlight"><c- n>out_ptr</c-></code> as currently designed does not fall prey to such problems.</p>
   <p>Already, users have sent me tweets and e-mails about extending this for their own types that they do not own. It would defeat the purpose of this type to require explicit opt-in.</p>
   <h4 class="heading settled" data-level="3.8.5" id="design-extension-traits"><span class="secno">3.8.5. </span><span class="content">Potential Future: Traits type customization</span><a class="self-link" href="#design-extension-traits"></a></h4>
   <p>Some degree of success has been had with a <code class="highlight"><c- n>out_ptr_traits</c-></code> and a <code class="highlight"><c- n>inout_ptr_traits</c-></code> customization point. It reduced the amount of code necessary to write over the original structure-based version, even if it came at the loss of some control of the underlying class and its temporary storage. If stack space is at a premium, the traits specialization when used to optimize <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code>-like changes is actually mildly inferior, but only in the case of taking up an extra pointer or two of stack space. This is likely negligible for the vast majority of use cases.</p>
   <p>We propose that the struct specialization stays because it gives the user the most control for truly unique circumstances. Users should not be overriding the base defaults often except in the case to severely rework the internals. It is also possible to implement the traits type customization as a future extension: this has already been deployed in the version proposed to Boost as well as the standalone C++ version vended to companies and individuals around the world. It does not have the same degree of usage experience as the struct specialization, however, so this paper will not propose it until it can be seen as successfully replacing the old usages without problem.</p>
   <h2 class="heading settled" data-level="4" id="experience"><span class="secno">4. </span><span class="content">Implementation Experience</span><a class="self-link" href="#experience"></a></h2>
   <p>This library has been brewed at many companies in their private implementations, and implementations in the wild are scattered throughout code bases with no unifying type. As noted in <a href="#motivation">§ 2 Motivation</a>, Microsoft has implemented this in <code class="highlight"><c- n>WRL</c-><c- o>::</c-><c- n>ComPtrRef</c-></code>. Its earlier iteration -- <code class="highlight"><c- n>c</c-><c- o>-</c-><c- n>com</c-><c- o>-</c-><c- n>ptr</c-></code> -- simply overrode <code class="highlight"><c- k>operator</c-><c- o>&amp;</c-></code>. We assume they prefer the former after having forced the need with <code class="highlight"><c- n>c</c-><c- o>-</c-><c- n>com</c-><c- o>-</c-><c- n>ptr</c-></code> for <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>addressof</c-></code>. the WRL is a public library used in thousands of applications, and has an interface similar to the proposed <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code>/<code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code>.</p>
   <p>VMWare has a type that much more closely matches the specification in this paper, titled <code class="highlight"><c- n>Vtl</c-><c- o>::</c-><c- n>OutPtr</c-></code>. The primary author of this paper wrote and used <code class="highlight"><c- n>out_ptr</c-></code> for over 5 years in their code base working primarily with graphics APIs such as DirectX and OpenGL, and more recently Vulkan. They have also seen a similar abstraction in the places they have interned at.</p>
   <p>Similarly, Adobe’s Chromium project has its <a data-link-type="biblio" href="#biblio-adobe-out-ptr">own version of out_ptr</a>.</p>
   <p>The primary author of <a data-link-type="biblio" href="#biblio-p0468">[p0468]</a> in pre-r0 days also implemented an overloaded <code class="highlight"><c- k>operator</c-><c- o>&amp;</c-></code> to handle interfacing with C APIs, but was quickly talked out of actually proposing it when doing the proposal. That author has joined in on this paper to continue to voice the need to make it easier to work with C APIs without having to wrap the function.</p>
   <p>Given that many companies, studios and individuals have all invented the same type independently of one another, we believe this is a strong indicator of agreement on an existing practice that should see a proposal to the standard.</p>
   <p>A <a href="https://github.com/ThePhD/out_ptr/blob/master/include/phd/out_ptr/detail/base_out_ptr_impl.hpp">full implementation with UB and friendly optimizations is available in the repository</a>. The type has been privately used in many projects over the last four years, and this public implementation is already seeing use at companies today. It has been particularly helpful with many COM APIs, and the re-allocation support in <code class="highlight"><c- n>inout_ptr</c-></code> has been useful for FFMPEG’s functions which feature reallocation support in their functions (e.g., <code class="highlight"><c- n>avformat_open_input</c-></code>).</p>
   <p>A version of this library was reviewed for Boost and rejected, but with encouragement to come back once the minor requested changes were done. However, re-proposing to Boost is not a good idea, since they want a version without optimizations and that version would lack the ability to pry on <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> to pre-allocate in the constructor to keep the destructor <code class="highlight"><c- k>noexcept</c-></code>. This makes it more of a primary candidate for the Standard than Boost, since it requires help directly from standard library implementers (or UB on the part of an outside implementation, which my 3rd party implementation engages in but Boost does not want at all).</p>
   <h3 class="heading settled" data-level="4.1" id="experience-wrapping"><span class="secno">4.1. </span><span class="content">Why Not Wrap It?</span><a class="self-link" href="#experience-wrapping"></a></h3>
   <p>A common point raised while using this abstraction is to simply "wrap the target function". We believe this to be a non-starter in many cases: there are thousands of C API functions and even the most dedicated of tools have trouble producing lean wrappers around them. This tends to work for one-off functions, but suffers scalability problems very quickly.</p>
   <p>Templated intermediate wrapper functions which take a function, perfectly forwards arguments, and attempts to generate e.g. a <code class="highlight"><c- n>unique_ptr</c-></code> for the first argument and contain the boiler plate within itself also causes problems. Asides from the (perhaps minor) concern that such a wrapping function disrupts any auto-completion or tooling, the issue arises that C libraries -- even within themselves -- do not agree on where to place the <code class="highlight"><c- n>some_c_type</c-><c- o>**</c-></code> parameter and detecting it properly to write a generic function to automagically do it is hard. Even within the C standard library, some functions have output parameters in the beginning and others have it at the end. The disparity grows when users pick up libraries outside the standard.</p>
   <h3 class="heading settled" data-level="4.2" id="experience-noexcept"><span class="secno">4.2. </span><span class="content">Conditionally <code class="highlight"><c- k>noexcept</c-></code> destructor?</span><a class="self-link" href="#experience-noexcept"></a></h3>
   <p>There is no indication whatsoever that conditional noexcept specification has any performance benefits in the happy path, as shown by the <a href="#perf-shared">§ 5.3 For std::shared_ptr and various cases</a> section. That makes the question of <code class="highlight"><c- k>noexcept</c-><c- p>(</c-><c- n>computed</c-><c- o>-</c-><c- n>expression</c-><c- p>)</c-></code> vs. <code class="highlight"><c- k>noexcept</c-><c- p>(</c->true<c- p>)</c-></code> strictly a matter of correctness, and not one of leaving no additional room beneath this library for a better C or hand-written alternative.</p>
   <p>Research into the Standard Library and scanning of the latest working draft, <a data-link-type="biblio" href="#biblio-n4820">[n4820]</a>, there is only a handful of destructors that could have potentially been marked throwing. However, due to the guidance of <a href="http://eel.is/c++draft/res.on.exception.handling">[res.on.exception.handling</a>], all of them have been marked as <code class="highlight"><c- k>noexcept</c-></code>. Even the one destructor that logically could have thrown is marked explicitly <code class="highlight"><c- k>noexcept</c-></code>, and it makes sure the "exception is caught but not rethrown" (<a href="http://eel.is/c++draft/filebuf.cons#5">[filebuf.cons</a>], clause 5). While nobody is going to argue that <code class="highlight"><c- o>&lt;</c-><c- n>iostream</c-><c- o>></c-></code>s and anything related to it is a paragon of good design, there is clear precedent in the Standard Library not to throw in destructors no matter what.</p>
   <p>Furthermore, there are plenty of things in the standard which error and should throw to communicate that error, but errors are deliberately not mentioned or ignored for the sake of destructors and usage idioms in the standard library. Consider the class of mutex types in the standard, including <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>mutex</c-></code>: their unlock operations on all platforms can signal Out of Resource-style errors (<code class="highlight"><c- n>EAGAIN</c-></code> for resource exhaustion on pthread mutices, for example). Absolutely no platforms throw an error for this, including <a href="https://github.com/gcc-mirror/gcc/blob/fbd263526ad105a953fd51d9f7bca2c3f268cf82/libstdc%2B%2B-v3/include/bits/std_mutex.h#L117">libstdc++ which simply ignores the error even after acknowledging it in comments</a> and <a href="https://github.com/llvm/llvm-project/blob/8baf83839e9a22fff98d3b906a63063f62934d16/libcxx/src/mutex.cpp#L45">libc++ which only has an assertion tanking in an assert-enabled build of libc++, otherwise nothing</a>. While this is not "as bad" as <code class="highlight"><c- n>basic_filebuf</c-></code>, it’s morally equivalent to just not bothering with the error: <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>lock_guard</c-></code> could trigger any of these errors, and absolutely nothing will inform the programmer that something exploded, which is arguably <em>worse</em> than just letting the exception hit the <code class="highlight"><c- k>noexcept</c-><c- p>(</c->true<c- p>)</c-></code> barrier of a standard destructor and tank the program because an important invariant has been violated.</p>
   <p>In short, given the long policy and history of <code class="highlight"><c- k>noexcept</c-></code>-marked destructors even in the face of errors, the lack of performance differentiation for the happy path with or without <code class="highlight"><c- k>noexcept</c-></code> markings, and the clear guidance in both Specification and Implementation to drop out-of-resource errors on the floor, <code class="highlight"><c- n>out_ptr_t</c-></code> and <code class="highlight"><c- n>inout_ptr_t</c-></code> will both remain unconditionally <code class="highlight"><c- k>noexcept</c-></code> to be consistent with C++ in letter, implementation and spirit.</p>
   <h2 class="heading settled" data-level="5" id="perf"><span class="secno">5. </span><span class="content">Performance</span><a class="self-link" href="#perf"></a></h2>
   <p>Many C programmers in our various engineering shops and companies have taken note that manually re-initializing a <code class="highlight"><c- n>unique_ptr</c-></code> when internally the pointer value is already present has a measurable performance impact.</p>
   <p>Teams eager to squeeze out performance realize they can only do this by relying on type-punning shenanigans to extract the actual value out of <code class="highlight"><c- n>unique_ptr</c-></code>: this is expressly undefined behavior. However, if an implementation of <code class="highlight"><c- n>out_ptr</c-></code> could be friended or shipped by the standard library, it can be implemented without performance penalty.</p>
   <p>Below are some graphs indicating the performance metrics of the code. 5 categories were measured:</p>
   <ul>
    <li data-md>
     <p>"c_code": handwritten C code, which does not use this idiom</p>
    <li data-md>
     <p>"clever": uses UB to alias the pointer value stored in <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code></p>
    <li data-md>
     <p>"friendly": modifies VC++'s, libc++'s, and libstdc++'s <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code>s to allow the implementation to friend the <code class="highlight"><c- n>out_ptr</c-></code> implementation, to access the internals without UB</p>
    <li data-md>
     <p>"manual": does the work by-hand using reset/release from a <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code></p>
    <li data-md>
     <p>"simple": a <code class="highlight"><c- n>out_ptr</c-></code> implementation that naively resets</p>
   </ul>
   <p>The full JSON data for these benchmarks is available <a href="https://github.com/ThePhD/phd/blob/master/benchmark_results/out_ptr/out_ptr_benchmarks.json">in the repository</a>, as well as all of the code necessary to run the benchmarks across all platforms with a simple CMake build system.</p>
   <h3 class="heading settled" data-level="5.1" id="perf-out_ptr"><span class="secno">5.1. </span><span class="content">For <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code></span><a class="self-link" href="#perf-out_ptr"></a></h3>
   <p>You can observe two graphs for two common <code class="highlight"><c- n>unique_ptr</c-></code> usage scenarios, which are using the pointer locally and discarding it ("local"), and resetting a pre-existing pointer ("reset") for just an output pointer:</p>
   <p><img height="480" src="data:image/png;base64,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h6FcKGOx490NERGRcVEpVca7C3KIVAAehq+89QYymcx4d0NERGTcdLd0j3cX5BCoADwMU1unHvZefCIiIiJjTc8AioiIiDQYFYAiIiIiDUYFoIiIiEiDUQEoIiIi0mBUAIqIiIg0GBWAIiIiIg1GBaCIiIhIg1EBKCIiItJgVACKiIiINBgVgCIiIiINRgWgiIiISINRASgiIiLSYFQAioiIiDQYFYAiIiIiDUYFoIiIiEiDUQEoIiIi0mBUAIqIiIg0mMh4d2Aycs4BkM/nx7knIiIi0ij21R376pDDoQLwEOzcuROAGTNmjHNPREREpNH09vaSy+UOqw0VgIegtbUVgA0bNhx2AmR85PN5ZsyYwcaNG8lms+PdHTkEyuHkpxxOfsrh2HLO0dvby9SpUw+7LRWAh8Dzao9O5nI5/YWf5LLZrHI4ySmHk59yOPkph2NntAaeNAlEREREpMGoABQRERFpMP4111xzzXh3YjLyfZ8zzjiDSER30Scr5XDyUw4nP+Vw8lMOJyfjRmMusYiIiIhMGroFLCIiItJgVACKiIiINBgVgCIiIiINRgWgiIiISINRAThC//qv/8qcOXNIJBIsXbqUBx98cLy7JK9w3XXXccopp5DJZOjs7OS8887j2WefHfK4n//85yxevJh4PM7ixYu57bbbxqC3MhzXXXcdxhguvvjig75POZxYNm3axAc/+EHa2tpIpVKccMIJLF++/KDH3H///SxdupREIsHcuXO56aabxqi38kpBEHDVVVcxZ84ckskkc+fO5Qtf+ALW2oMepxxOEk6G7Uc/+pGLRqPu5ptvditXrnTLli1zTU1Nbv369ePdNXmZs88+291yyy3uqaeecitWrHDnnnuumzlzpuvr6zvgMQ899JDzfd9de+21btWqVe7aa691kUjEPfzww2PYc9mfRx991M2ePdsdd9xxbtmyZQd8n3I4sezatcvNmjXLXXDBBe6RRx5xa9eudb/61a/c888/f8BjXnjhBZdKpdyyZcvcypUr3c033+yi0aj72c9+NoY9l32++MUvura2NnfnnXe6tWvXup/+9KcunU6766+//oDHKIeTh5aBGYHXv/71nHTSSXzzm98ceG3RokWcd955XHfddePYMzmY7du309nZyf3338+b3/zm/b7nve99L/l8nrvuumvgtT/5kz+hpaWF//iP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PkFNjzYGQHrkaDQaHDlyBNHR0Zg3bx68vLzw61//GhcvXoS7uzsAYPv27Rg4cCAiIiIwZcoUxMXFISgoqM/b3LZtG/Ly8jB8+HAYjcb71RU4OTnhxIkTGDFiBGbMmAEfHx/MmzcPLS0t9/2K4IYNG5CRkYFNmzbBx8cHcXFxyMnJwciRIwEACxcuxIwZMxAfH4/Q0FBcu3bN4mqgk5MTKisrMXPmTHh5eSEpKQmLFy/GggULAABxcXFYu3Yt0tPTERISghs3blhcseuJNfszPj4eGRkZWLlyJcaPH4/6+no8//zz93V8+up+HGtOTk4wmUz45ptvEBISgqeffhqTJk3Cm2++qczvbewPHTqEvLw8hISEICwsDK+99ho8PDyUbXz44YcICQnBrFmz4Ovri/T0dOWqT1BQED744AMcOHAAfn5+yMjIQGZmJhITE63ug06nQ05ODsrLy2E0GrF69Wps3rzZoo69vT1WrVoFf39/REdHw9bWFgcOHLinserN0qVLkZqaitTUVDzxxBPIzc3FwYMHMXbsWKWOn58fBg0ahICAAOU8i4mJQVtbW5crfb2dN33Vl7GYM2cOWlpaMGHCBCQnJ2PJkiVISkpS5mdlZWHOnDlITU2Ft7c3pk6dii+++ALDhw8HcPvL0RcuXIj4+Hi4ubnh1VdfBQBkZmbi4sWLGD16tPLoib+/PwoKClBdXY2oqCgYjUasXbtWeQaWHn0asebBDSIiIiL6yeAVQCIiIiKVYQAk1ev8dRN3/hs3btyDbh4REdF9x1vApHo3btzAP//5z27n2dnZWTxHRURE9FPAAEhERESkMrwFTERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQyDIBEREREKsMASERERKQy/wfeQn+Dg0aSYAAAAABJRU5ErkJggg==" width="640"></p>
   <p><img height="480" src="data:image/png;base64,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DAAgPDy8lXtCREREWlNWVgY/P7/rmgcTwGsQGBgIADhx4sR1fwG3m4sXLyI8PBzffvstfH19W7s7txTGxjPGxjPGxjPGxjPGxrO2HBsRQVlZGcLCwq57XkwAr4FOV3vppJ+fX5tbeVqKr68vY+MBY+MZY+MZY+MZY+MZY+NZW43NjTrwxJtAiIiIiDSGCSARERGRxugXLFiwoLU70Rbp9XokJSXBYOBZ9PoYG88YG88YG88YG88YG88YG88YG0CRG3EvMRERERG1GTwFTERERKQxTACJiIiINIYJIBEREZHGMAEkIiIi0hgmgM30v//7v+jSpQssFgsGDBiAnTt3tnaXWsyOHTswatQohIWFQVEUfPzxx422ycrKwoABA2CxWNC1a1e88847LdDTlrd48WIMHDgQNpsN7du3x0MPPYSCgoJG261fvx7R0dEwm82Ijo7GRx991AK9bVnLli1D37591YeuJiQk4LPPPrtqGy3ExZ3FixdDURTMmDHjqvW0EJ8FCxZAURSXfx06dLhqG63sbwDg5MmT+PnPf46goCB4eXmhf//+yMnJuWobrcQnMjKywbqjKAqmTp3qsY0WtqkGhJps7dq1YjQaZcWKFZKXlyepqani7e0tx48fb+2utYhNmzbJCy+8IOvXrxcA8tFHH121/tGjR8XLy0tSU1MlLy9PVqxYIUajUf72t7+1UI9bTnJysqSlpcmBAwckNzdX7r//funcubOUl5d7bJOdnS16vV4WLVok+fn5smjRIjEYDLJr164W7PnNt2HDBvn000+loKBACgoK5Pnnnxej0SgHDhxwW18rcanv66+/lsjISOnbt6+kpqZ6rKeV+MyfP1/69OkjJSUl6r/S0lKP9bW0vzl79qxERERISkqKfPXVV1JcXCxbt26Vw4cPe2yjpfiUlpa6rDcZGRkCQLZv3+62vla2qfqYADbDnXfeKVOmTHEp6927tzz33HOt1KPW05QEcPbs2dK7d2+Xsscff1wGDx58M7t2SygtLRUAkpWV5bHOf//3f8uPfvQjl7Lk5GR5+OGHb3b3Wl1AQID86U9/cjtNi3EpKyuTHj16SEZGhiQmJl41AdRKfObPny/9+vVrcn0t7W/mzJkjd911V7PaaCk+9aWmpkq3bt3E6XS6na6Vbao+ngJuourqauTk5ODee+91Kb/33nuRnZ3dSr26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ETZs2OByBzW1bUwAqc1RFAWbNm3C8OHDMWnSJPTs2RMPP/wwjh07hpCQEADAW2+9hYCAAAwZMgSjRo1CcnIy4uLirnmZb7zxBjIyMhAeHo7Y2NgbNRR4eXlhx44d6Ny5M0aPHo2oqChMmjQJly9fvuFHBF9++WXMmzcPixcvRlRUFJKTk7Fx40Z06dIFADBlyhSMHj0aY8eOxaBBg3DmzBmXo4FeXl44dOgQxowZg549e2Ly5MmYNm0aHn/8cQBAcnIyXnrpJcyePRsDBw5EWVmZyxE7T5ryfY4dOxbz5s3DnDlzMGDAABw/fhxPPPHEDY3PtboR65qXlxfS09Nx9uxZDBw4ED/96U8xcuRI/OEPf1CnNxb7Tz75BBkZGRg4cCAGDx6MN998ExEREeoy1q9fj4EDB+KRRx5BdHQ0Zs+erR71iYuLw1//+lesXbsWMTExmDdvHhYuXIiUlJQmj8HHxwcbN25EXl4eYmNj8cILL+DVV191qWMymTB37lz07dsXw4cPh16vx9q1a5sVq8ZMnz4dM2fOxMyZM3HHHXdg8+bN2LBhA3r06KHWiYmJQbt27dCvXz91O0tMTITD4WhwpK+x7eZaXUssJkyYgMuXL+POO+/E1KlT8dRTT2Hy5Mnq9LS0NEyYMAEzZ85Er1698MADD+Crr75CeHg4gNqHo0+ZMgVjx45FcHAwfvOb3wAAFi5ciGPHjqFbt27qpSd9+/ZFVlYWioqKMGzYMMTGxuKll15Sr4Gltk+Rply4QURERES3DR4BJCIiItIYJoCkefUfN3Hlvz59+rR294iIiG44ngImzSsrK8O///1vt9OMRqPLdVRERES3AyaARERERBrDU8BEREREGsMEkAH8i60AAAGBSURBVIiIiEhjmAASERERaQwTQCIiIiKNYQJIREREpDFMAImIiIg0hgkgERERkcYwASQiIiLSGCaARERERBrDBJCIiIhIY5gAEhEREWkME0AiIiIijWECSERERKQxTACJiIiINIYJIBEREZHGMAEkIiIi0hgmgEREREQawwSQiIiISGOYABIRERFpDBNAIiIiIo1hAkhERESkMUwAiYiIiDSGCSARERGRxjABJCIiItIYJoBEREREGsMEkIiIiEhjmAASERERaQwTQCIiIiKNYQJIREREpDFMAImIiIg0hgkgERERkcYwASQiIiLSGCaARERERBrDBJCIiIhIY5gAEhEREWkME0AiIiIijWECSERERKQxTACJiIiINIYJIBEREZHGMAEkIiIi0hgmgEREREQawwSQiIiISGOYABIRERFpDBNAIiIiIo1hAkhERESkMUwAiYiIiDSGCSARERGRxjABJCIiItIYJoBEREREGsMEkIiIiEhjmAASERERacz/A1PsPygHvpx3AAAAAElFTkSuQmCC" width="640"></p>
   <h3 class="heading settled" data-level="5.2" id="perf-inout_ptr"><span class="secno">5.2. </span><span class="content">For <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code></span><a class="self-link" href="#perf-inout_ptr"></a></h3>
   <p>The speed increase here is even more dramatic: reseating the pointer through <code class="highlight"><c- p>.</c-><c- n>release</c-><c- p>()</c-></code> and <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> is much more expensive than simply aliasing a <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-></code> directly. Places such as VMWare have to perform Undefined Behavior to get this level of performance with <code class="highlight"><c- n>inout_ptr</c-></code>: it would be much more prudent to allow both standard library vendors and users to be able to achieve this performance without hacks, tricks, and other I-promise-it-works-I-swear pledges.</p>
   <p><img height="480" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3Xm8XVV9///X2nuf8Z7hzhlv5kAChshgBSdABLRKQShYVDQi9dfaWpR+lVJlslWpUr/yrRMOEFrhq9+i2KoPtZZBqAJNwRgEhCQkZCS5JDd3PNPee/3+2MndXDKQ5E4nOe/n45HWe84e1rpvstcne1jbWGstIiIiItIwnMlugIiIiIhMLBWAIiIiIg1GBaCIiIhIg1EBKCIiItJgVACKiIiINBgVgCIiIiINRgWgiIiISINRASgiIiLSYFQAioiIiDQYFYAiIiIiDUYFoIiIiEiDUQEoIiIi0mBUAIqIiIg0GBWAIiIiIg1GBaCI1I3ly5djjGH9+vWT2o7169djjGH58uVjstxEeeqpp7jhhhvG5ff31a9+tW76KSKjpwJQROQwTZs2jYcffpi3v/3tk90UICoAb7zxRhWAIvKKvMlugIjIkSqVSnHqqadOdjPqTq1WwxiD52mIEalXOgMoInXvtttuY+nSpaTTaVpbW3nnO9/J008/vddyjz76KOeddx5tbW2k02nmz5/PRz/60eHv16xZwwc+8AEWLlxINptlxowZnHfeeTzxxBOH1a59XQK+4YYbMMbw5JNPcumll1IsFpkyZQqXX345vb29I9Yvl8tcc801zJ07l2QyyYwZM/iLv/gLdu3aNWI5Yww33HDDXvufM2cOy5YtA6LL5xdffDEAZ555JsaYV7w8vaetv/nNb7jwwgspFAoUi0Xe+9730t3dPWI/Tz75JL/85S+HtztnzhwAHnjgAYwx/Mu//At//dd/zYwZM0ilUqxZs+bgf5EiMuFUAIpIXfvc5z7HBz/4QY4//nh+8IMfcMstt7Bq1SpOO+00Vq9ePbzcz3/+c974xjeyYcMGvvjFL/LTn/6UT33qU2zbtm14mS1bttDW1sZNN93Ez372M77yla/geR6vfe1reeaZZ8a03RdddBHHHHMM3//+9/mbv/kb7rrrLj72sY8Nf2+t5YILLuDmm2/msssu4yc/+QlXXXUVd9xxB29+85upVCqHtL+3v/3tfPaznwXgK1/5Cg8//PBBX55+5zvfyYIFC7j77ru54YYb+OEPf8i5555LrVYD4J577mHevHmceOKJw9u95557RmzjmmuuYcOGDXz961/nRz/6EZ2dnYfUfhGZYFZEpE7cfvvtFrDr1q2z1lrb09NjM5mM/cM//MMRy23YsMGmUin77ne/e/iz+fPn2/nz59tSqXTQ+/N931arVbtw4UL7sY99bPjzdevWWcDefvvtB1x/X8tdf/31FrCf//znRyz74Q9/2KbTaRuGobXW2p/97Gf7XO573/ueBew3vvGN4c8Ae/311++1/9mzZ9v3v//9wz//67/+qwXs/ffff+COv6ytL+27tdbeeeedFrDf+c53hj87/vjj7emnn77XNu6//34L2De96U0HtU8RqQ86Aygidevhhx+mVCoNX+bco6urize/+c3ce++9ADz77LOsXbuWD37wg6TT6f1uz/d9PvvZz3LccceRTCbxPI9kMsnq1av3eUl5NP7oj/5oxM8nnHAC5XKZ7du3A3DfffcB7NW3iy++mKampuG+TYT3vOc9I36+5JJL8DyP+++//6C3cdFFF411s0RkHKkAFJG6tWPHDiB62vblpk+fPvz9nvvVZs6cecDtXXXVVVx77bVccMEF/OhHP+LRRx9lxYoVLF26lFKpNKZtb2trG/FzKpUCGN7Pjh078DyPjo6OEcsZY5g6depw3ybC1KlTR/zseR5tbW2H1IZ9ZSQi9UuPaIlI3dpTRG3dunWv77Zs2UJ7ezvAcBG1adOmA27vO9/5Du973/uG75Xb48UXX6S5uXksmnzQ2tra8H2f7u7uEUWgtZYXXniB17zmNcOfpVKpfd4TOFZF4gsvvMCMGTOGf/Z9nx07duxVxB6IMWZM2iIiE0NnAEWkbp122mlkMhm+853vjPh806ZN3HfffZx11lkAHHPMMcyfP5/bbrvtgA9PGGOGz8Tt8ZOf/ITNmzePfeNfwZ62v7xv3//+9xkcHBz+HqKncFetWjViufvuu4+BgYERn738LOPBuvPOO0f8/P/+3//D933OOOOMEdse67OkIjJ5dAZQROpWc3Mz1157LX/7t3/L+973Pi699FJ27NjBjTfeSDqd5vrrrx9e9itf+QrnnXcep556Kh/72MeYNWsWGzZs4Oc///lwgfOO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KpURrw7q6+s7qN9DvR1MNbgpjz2UR0x5ROoxj1nzFgLxfW8vbFjHh88+6YDrNzVlcY1DLpej6gcEoU9goVSpkEmlwBistXiex2AQjnt/DpUxhmwmQ6VSoVwqYXa3N+G5mgJGxtSYF4D9/f3ccsstfPnLX+b9738/APPnz+cNb3jDAde766676O7uZsWKFbS2tgKwYMGC4e9vvvlmli1bxoc//GEArrrqKh555BFuvvlmzjzzTP7zP/+Tp59+mvXr1zNz5kwAPvvZz/K2t71teBvf/e53cRyHb33rW8N/iW6//Xaam5t54IEHOOecc/bZts997nPceOONh/R7qMeDqQY35QHK46WUR6Re8wh3T+Tsuod22bMpV6RaCwCLl8pQKpVoaspSrdVwXQfPre+7n4wxpNNpNNmLjKcxLwCffvppKpUKZ5111iGtt3LlSk488cTh4m9f2/3Qhz404rPXv/713HLLLcPfz5o1a7j4AzjttNNGLP/YY4+xZs0a8vn8iM/L5TJr167db9uuueYarrrqquGf+/r66Orq2u/y9XownQwa3GLKI6I8Ysojtt88LDhOVLBN6ZrDp279Hq7nYYyhWirz+yf+h6AS0NzWyjf/7uNYC7UgYO3650l7LgnXZahUppDPMzg4SFMmRSqVwvf9ui8ERcbTmBeAmUxm3NZ7+alva+3wZ/t6Murly4dhyMknn8ydd96517IdHR373W8qlTro+y7q/mA6gTS4xZRHRHnElEdsf3lYC67rDB/fHcchlc7geAnAElpLtilPyR2kGoZgHIIgIJFJ0JxshVqF7p09dL+4LSr2Ap+mdBLf96lVK+SaspPSX5F6MOb//Fm4cCGZTIZ77733kNY74YQTWLlyJTt37tzn94sXL+a//uu/Rnz261//msWLFwNw3HHHsWHDBrZs2TL8/cMPPzxi+ZNOOonVq1fT2dnJggULRvwpFouH1N59qfeD6UTS4BZTHhHlEVMesVfKIxhxn54BY3A9Dy+RwPUSFNun0tY2jYEXtwMWi6VaCUklXYyXoLlYJJXIMjQwQCKZolKt0d/XSyrh6Y0a0tDGvABMp9NcffXVfOITn+Cf//mfWbt2LY888gjf/va3D7jepZdeytSpU7ngggv41a9+xXPPPcf3v//94SLu4x//OMuXL+frX/86q1ev5otf/CI/+MEP+F//638B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" width="640"></p>
   <p><img height="480" src="data:image/png;base64,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JtVG/7J+svkMURChnaRPk5mZJHFIHBKHxCFxSBxzMQ6FwhhL79IevLxHFEQoraguqxKbCGPi5NavGR8DtHRcnzAbUh+qM/TcPoyyBMYnIMRv+zSCBkPDI0nBaELajSaxjQltBMYShRHaqIllYuYiZSczzisAqNfrVKtV/te/vA6v4AHyEO84iSMlcaQkjoTEkZI4UhJHYipxBGFAbCI6HZ/2aAcno4m9mCAKCOMQqy0mNqAsJrTEoxEqVgT7I4J9IQuXLmTBwkEqbheVQoVcLoejNRW3Sk9vD1EjJkeOBeWFLOlfwtK+ZXRXu0/4EjDj9UetVqNSqUypLSkAj8GhCkAhhBBCzIwwConiiCAKsMoSxzF+6OOHHR766CYA1n1sdXI7OLA0n21gtMLujwn2GUb+az+u53H59a+lkMtTKXfhGpdsKU9vuYuSW6bolVnSs5TuTDenrTjtmArtqZrOAnDGbgFfddVVXH755cf9c26//Xa6urqO++cIIYQQYmYYY1Ba4TgOWiksFmvNQZM0lFYopcYm7jqgLLrgkStlkoWjjYUQSl6FaqlKobeI32nT3NsiY7P0l/op5UsUigX8wJ+hSKfPjC0Dc+utt05qlpEQQgghxK8zxqCUwliLUhqFRaMAhVWM7Qpix9YLJFm6xbFgLToG6yXHamvJe0UWDCzAOBad0bg5B8d6qFjTXe3GmphivoAfzt31/8bNWAFYrVZn6qOFEEIIcZKwYxvAaa1QVhMFIZakztMHPKNnDaCTkb64FYMCnQGNA1iUBZWxFEsl2o0mns1R7iqRJc/AggEiYlRsCeMIx537yygf91vA3/72t1m/fj35fJ7e3l5e+cpX0mw2n3cL+NJLL+W9730v73//++nu7mZwcJCvfOUrNJtNrr76asrlMqtXr+Z73/vexDF33XUXSin+4z/+g7PPPptcLseLXvQiHn744cP26d///d85//zzyeVyrFq1iptuuokoio7b70AIIYQQx5ua+D/HcVBaox0nXaw5tmCS9WG066JzChVrYGy7OKDolfAcj7wuUM2W6Sr1UC13odFEfkh/9wA4lk6nM0MxTp/jWgDu2rWLN7/5zbz97W9n06ZN3HXXXVxxxRUveOv361//On19fdx77728973v5d3vfjdveMMbuOSSS3jwwQe57LLLeOtb30qr1TrouA996EPccsst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" width="640"></p>
   <h3 class="heading settled" data-level="5.3" id="perf-shared"><span class="secno">5.3. </span><span class="content">For <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> and various cases</span><a class="self-link" href="#perf-shared"></a></h3>
   <p>Here, we examine the impact of <code class="highlight"><c- k>noexcept</c-></code> and various styles of initializing a <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> with a value. This is mostly informational and educational: due to the asynchronous, shared ownership semantics of <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> there is little that can be done in the optimization space. Note that this is not the case for types like <code class="highlight"><c- n>boost</c-><c- o>::</c-><c- n>local_shared_ptr</c-></code> and the upcoming <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>retain_ptr</c-></code>, where inline and synchronous execution are part of the type’s semantic contract with the user by default. This allows someone to directly reseat the resource within, depending on things like tracked reference count or whether it is conceptually an <code class="highlight"><c- n>out_ptr</c-></code> operation or an <code class="highlight"><c- n>inout_ptr</c-></code> operation.</p>
   <p>Note that <code class="highlight"><c- k>noexcept</c-></code>-ness does not change the performance of the happy path in any of these scenarios, regardless of whether a conditional <code class="highlight"><c- k>noexcept</c-></code> or unconditionally <code class="highlight"><c- k>noexcept</c-></code>:</p>
   <p><img height="480" src="data:image/png;base64,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B9X5ImIhxPWpf//+yuVyqSlTpqjdu3errKwsZRiG6tOnjxo8eLDavHmz2rt3r5o0aZKKj49Xp06dUkoplZmZqV544QW1fft2tXfvXvXoo48qu92uDh8+HEy7cePG6tlnn60wDydOnAi+VD47O1udOHFCKaXUzJkzVYcOHYLrjRo1SkVGRqrf//73avfu3er//u//FKAGDRqknnjiCbV37141d+5cZbFYgi+tLywsVM2bN1djxoxR27dvV7t27VLDhw9XLVu2VG63u8z8rFu3TgGqZ8+e6tNPP1Vbt25VzZo1U/3791c333yz2rp1q9qwYYOKj49Xf/zjH4PbPfLII6pVq1Zq1apV6sCBA2rp0qXKZrOp9evXK6WU8ng8asaMGerLL79U3377rfrLX/6inE6neuutt5RSSnm9XhUdHa0mT56s9u/fr3bt2qWWLVsWrNNRo0apIUOGhOT1wQcfVP3797/i9nzrrbeU1WpVL7/8stq9e7d69NFHVWRkZEj9l1dPZ86cUUoptXTpUmWxWNRPfvITtXnzZrVlyxaVkZGhhg8fXmEaPXr0UOvXr1c7d+5Uffv2Vb179w6uE+6xFhcXp55//nm1b98+tWDBAqXrusrKygoeBykpKWro0KFqx44dau3atSo9PV2NGjUqrLpftWqVioqKUsuWLVMHDhxQH330kUpLS1OzZs1SSinl9/tVz549VZs2bdRHH32kDhw4oN577z31wQcfKKWU+uqrr5Su62rOnDlqz549aunSpcrhcKilS5eGXYaCggKVkJCghg0bpr755hv13nvvqSZNmihAbdu2TSml1O9//3vVsWNHtXnzZnXw4EG1Zs0a9a9//avc+g/Hhd/DZ555RkVFRak33nhD7d69W02dOlVZLBa1d+9epZRS//M//6Patm0bXL9jx46qXr166vnnn1dKKbVp0yZlNptVfn6+Uqri703pMdK+fXv10Ucfqf3796uTJ09elM+DBw9eUV2UfncefPBBtXv37uD386WXXgquM3z4cNW7d2+1YcMGtX//fvXUU08pm82m9u7dq9xut1q8eLGKiopS2dnZKjs7W+Xn56tTp06phg0bqjlz5gTnK6XU9u3blcvlUs8++6zau3ev+uyzz1SnTp3U6NGjg/tr3LixioqKUhIACiGqXP/+/VXHjh1D5q1du1ZFRUWpkpKSkPlNmzZVL774YrlptW7dWv3pT38KTocbACqlFKDeeeedkHllBYCNGzdWfr8/OK9ly5aqb9++wWmfz6ciIiLUG2+8oZRS6v/+7/9Uy5YtlWEYwXXcbrdyOBxq9erVZeal9ITz8ccfB+ctWLBAAerAgQPBeb/97W/VoEGDlFKBk7PdblebNm0KSevee+9Vv/rVr8ot9/jx49Wdd96plFLq1KlTCgie+C4UbgBYmfbs1auXGjduXMjyHj16XHYACKj9+/cH13n++edVYmJihWmcX9crV65UgCouLi53u7KOtV//+tfBacMwVP369dX//u//KqWUeumll1RsbKwqKCgI2Y+u6+r48eMV1n3fvn3V/PnzQ+atWLFCJScnK6WUWr16tdJ1Xe3Zs6fM7YcPH65uuummkHlTpkxRrVu3DrsML774ooqLi1OFhYXBdf73f/83JOgZPHiwuueee8rMQ2Vd+D1MSUlRTzzxRMg63bp1U+PHj1dKBQIbTdPUjz/+qE6fPq0sFouaN2+e+sUvfqGUUmr+/PmqR48eSqnwvjelx8i77757yXxeGABebl30799fZWRkhPxWTJs2TWVkZCillNq/f7/SNE0dO3YsZLsbb7xRTZ8+XSkV+A5ER0dflHZZv4UjR45UY8eODZm3ceNGpet68Nhv3LixuuOOO5QMAQshroquXbuGTG/ZsoWCggLi4+NxuVzBz8GDBzlw4AAAhYWFTJ06ldatWxMTE4PL5WL37t0cOXLkqua1TZs26Pq5n8PExETatWsXnDaZTMTHx3PixIlgWfbv309kZGSwHHFxcZSUlATLUp727duH7MfpdNKkSZOQeaX72bVrFyUlJdx0000hdfbaa6+F7OeFF16ga9euJCQk4HK5ePnll4N1FhcXx+jRoxk0aBCDBw/mueeeu+TwaXkq055ZWVn06tUrZLsLp8PhdDpp2rRpcDo5OTlYR5dyfl0nJycDBLcL91g7Pw1N00hKSgqmkZWVRYcOHYiIiAiu06dPHwzDYM+ePRXW/ZYtW5gzZ05I/d13331kZ2dTVFREZmYmDRs2pEWLFmWWLysriz59+oTM69OnD/v27cPv919WGZxOZ3CdC9vod7/7HW+++SYdO3Zk6tSpbNq0qcz8ALz++ush5SlrWPVCeXl5fP/992WWJSsrC4C2bdsSHx/PJ598wsaNG+nQoQO33347n3zyCRAYKu3fvz8Q/vcGLj6uK3I5dVGqZ8+eIUO0vXr1CrbR1q1bUUrRokWLkLx+8sknFf6WlGXLli0sW7YsJK1BgwZhGAYHDx4Mrte1a1euv6sahRA1wvknRQhc45OcnBy8tuV8pXe4TZkyhdWrV/P000/TrFkzHA4HP//5z6/6TSQWiyVkWtO0MucZhgEEytKlSxdef/31i9JKSEgIe1/h7Adg5cqVNGjQIGQ9m80GwN/+9jceeughFi1aRK9evYiMjOSpp57iiy++CK67dOlSHnjgAVatWsVbb73FY489xpo1a+jZsye6rodcjwTg9Xovyndl2rOqlFVHF+a5ou1KT8CldRrusXap9lFKlXuzSun8S9W9YRjMnj2boUOHXrS93W7H4XBcsnxl7b+seqmoDBW59dZbOXz4MCtXruTjjz/mxhtv5Pe//z1PP/30Revefvvt9OjRIzh94XF7KWWVpXSepmn069eP9evXY7VaGTBgAG3btsXv97Njxw42bdoUfNxKON+bUhce1xW5nLoIh2EYmEwmtmzZgslkClnmcrkqld5vf/tbHnjggYuWNWrUKPj/iIgICQCFENdG586dOX78OGazOXhDxoU2btzI6NGj+dnPfgZAQUHBJW+sqIjFYgnpCakqnTt35q233gre/HC1tG7dGpvNxpEjR4K9GxfauHEjvXv3Zvz48cF5ZfUcdOrUiU6dOjF9+nR69erFX//6V3r27ElCQgLffPNNyLqZmZkXBQ0XCqc9MzIy+Pzzz7n77ruD8z7//PNLpnutVMWx1rp1a5YvX05hYWEwkPjss8/QdT2k1668uu/cuTN79uyhWbNmZabfvn17vvvuO/bu3VtmL2Dr1q359NNPQ+Zt2rSJFi1aXBRMXKoMK1asoLi4OBhwltVGCQkJjB49mtGjR9O3b1+mTJlSZtATGRlJZGRkWPsuFRUVRUpKCp9++in9+vULKUv37t2D0wMGDOCll17CarUyZ84cNE2jb9++PP300xQXFwd7EMP53lyJcOui1IX1+fnnn9O8eXNMJhOdOnXC7/dz4sQJ+vbtW+b2Vqu1zN+xsuZ37tyZnTt3lntMnU+GgIUQ18RPfvITevXqxR133MHq1as5dOgQmzZt4rHHHuOrr74CoFmzZrz99ttkZmby9ddfM3z48OBf85WRlpbG2rVrOX78OGfOnKmqojBixAjq1avHkCFD2LhxIwcPHuSTTz7hwQcf5Lvvvquy/URGRjJ58mQeeughli9fzoEDB9i2bRvPP/88y5cvBwJ19tVXX7F69Wr27t3L448/zubNm4NpHDx4kOnTp/Of//yHw4cP89FHH7F3714yMjIAGDhwIF999RWvvfYa+/btY+bMmRcFhGUJpz0ffPBBXn31VV599VX27t3LzJkzg3dtVreqONZGjBiB3W5n1KhRfPPNN6xbt47777+fkSNHkpiYWGHdz5gxg9dee41Zs2axc+dOsrKygr2EAP3796dfv37ceeedrFmzhoMHD/Lhhx8G746dNGkSa9euZe7cuezdu5fly5ezZMkSJk+eHHYZhg8fjq7r3HvvvezatYsPPvjgomBmxowZ/L//9//Yv38/O3fu5P333w+WoapMmTKFhQsX8tZbb7Fnzx4efvhhMjMzefDBB4PrDBgwgJ07d7Jjx45gsDRgwABef/11OnfuHPxjLJzvTWVVpi6OHj3KH/7wB/bs2cMbb7zBn/70p2C5WrRowYgRI7j77rt5++23OXjwIJs3b2bhwoV88MEHQOB3rKCggLVr13Ly5MngUwLS0tLYsGEDx44d4+TJkwBMmzaN//znP/z+978nMzOTffv28a9//SvkDupSEgAKIa4JTdP44IMP6NevH2PGjKFFixbcddddHDp0iMTERACeffZZYmNj6d27N4MHD2bQoEF07ty50vtctGgRa9asITU1lU6dOlVVUXA6nWzYsIFGjRoxdOhQMjIyGDNmDMXFxVXeIzh37lxmzJjBggULyMjIYNCgQbz33nukp6cDMG7cOIYOHcqwYcPo0aMHp06dCukNdDqd7N69mzvvvJMWLVowduxYJkyYwG9/+1sABg0axOOPP87UqVPp1q0b+fn5IT125QmnPYcNG8aMGTOYNm0aXbp04fDhw/zud7+r0vqprKo41pxOJ6tXr+b06dN069aNn//859x4440sWbIkuLyiun///fdZdJVeGAAAAoRJREFUs2YN3bp1o2fPnjzzzDM0btw4uI9//vOfdOvWjV/96le0bt2aqVOnBnt9OnfuzN/+9jfefPNN2rZty4wZM5gzZw6jR48Ouwwul4v33nuPXbt20alTJx599FEWLlwYso7VamX69Om0b9+efv36YTKZePPNNy+rrirywAMPMGnSJCZNmkS7du1YtWoV//rXv2jevHlwnf/fzh2qKhaFYRj+J3gHGk0Gg6JYbOIdWG1GEcRkthi9Ca/F6DVYrGaDSWbCgJwzMzDDKTNnvueBnXbZbFjwstbP6vf71Ww2azgcvtbZdDqt5/P5007f79bNR33kXywWi3o8HjUej2u9Xtdms6nlcvl6fzwea7FY1Ha7rW63W7PZrM7nc7Xb7ar6fjn6arWq+XxerVarDodDVVXt9/u6Xq/V6XReoyeDwaBOp1NdLpeaTCY1Go1qt9u9ZmDf+vL1TwYAAAD4b9gBBAAIIwCBT+nH6ybePr1e729/HsA/zREw8Cnd7/e63W6/fNdoNN7NUQHwngAEAAjjCBgAIIwABAAIIwABAMIIQACAMAIQACCMAAQACCMAAQDCCEAAgDACEAAgjAAEAAgjAAEAwghAAIAwAhAAIIwABAAIIwABAMIIQACAMAIQACCMAAQACCMAAQDCCEAAgDACEAAgjAAEAAgjAAEAwghAAIAwAhAAIIwABAAIIwABAMIIQACAMAIQACCMAAQACCMAAQDCCEAAgDACEAAgjAAEAAgjAAEAwghAAIAwAhAAIIwABAAIIwABAMIIQACAMAIQACCMAAQACCMAAQDCCEAAgDACEAAgjAAEAAgjAAEAwghAAIAwAhAAIIwABAAIIwABAMJ8AyCbceE4zH/tAAAAAElFTkSuQmCC" width="640"></p>
   <p><img height="480" src="data:image/png;base64,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" width="640"></p>
   <h2 class="heading settled" data-level="6" id="bikeshed"><span class="secno">6. </span><span class="content">Bikeshed</span><a class="self-link" href="#bikeshed"></a></h2>
   <p>As with every proposal, naming, conventions and other tidbits not related to implementation are important. This section is for pinning down all the little details to make it suitable for the standard.</p>
   <h3 class="heading settled" data-level="6.1" id="bikeshed-specification"><span class="secno">6.1. </span><span class="content">Alternative Specification</span><a class="self-link" href="#bikeshed-specification"></a></h3>
   <p>The authors of this proposal know of two ways to specify this proposal’s goals.</p>
   <p>The authors have settled on the approach in <a href="#design-synopsis">§ 3.1 Synopsis</a>. We believe this is the most robust and easiest to use: singular names tend to be easier to teach and use for both programmers and tools. We discuss the older techniques to uphold thorough discussion and inspection of the solution space.</p>
   <p>The first way is to specify both functions <code class="highlight"><c- n>out_ptr</c-></code> and <code class="highlight"><c- n>inout_ptr</c-></code> as factories, and then have their types named differently, such as <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr_t</c-></code> and <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr_t</c-></code>. The factory functions and their implementation will be fixed in place, and users would be able to (partially) specialize and customize <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr_t</c-></code> and <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr_t</c-></code> for types external to the stdlib for maximum performance tweaking and interop with types like <code class="highlight"><c- n>boost</c-><c- o>::</c-><c- n>shared_ptr</c-></code>, <code class="highlight"><c- n>my_lib</c-><c- o>::</c-><c- n>local_shared_ptr</c-></code>, and others. This is the direction this proposal takes.</p>
   <p>The second way is to specify the class names to be <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-></code> / <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-></code>, and then used Template Argument Deduction for Class Templates from C++17 to give a function-like appearance to their usage. Users can still specialize for types external to the standard library. This approach is more Modern C++-like, but contains a caveat.</p>
   <p>Part of this specification is that you can specify the stored pointer for the underlying implementation of <code class="highlight"><c- n>out_ptr</c-></code> as shown in <a href="#design-casting">§ 3.5 Casting Support</a>. Template Argument Deduction for Class Templates does not allow partial specialization (and for good reason, see the interesting example of <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>tuple</c-><c- o>&lt;</c-><c- b>int</c-><c- p>,</c-> <c- b>int</c-><c- o>></c-><c- p>{</c-><c- mi>1</c-><c- p>,</c-> <c- mi>2</c-><c- p>,</c-> <c- mi>3</c-><c- p>}</c-></code>). The "Deduction Guides" (or CTAD) approach would accommodate <a href="#design-casting">§ 3.5 Casting Support</a> using functions with a more explicit names, such as <code class="highlight"><c- n>out_ptr_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>*></c-><c- p>(</c-> <c- p>...</c-> <c- p>);</c-></code> and <code class="highlight"><c- n>inout_ptr_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>*></c-><c- p>(</c-> <c- p>...</c-> <c- p>);</c-></code>. This route was deemed less overall palatable.</p>
   <h3 class="heading settled" data-level="6.2" id="bikeshed-naming"><span class="secno">6.2. </span><span class="content">Naming</span><a class="self-link" href="#bikeshed-naming"></a></h3>
   <p>Naming is hard, and therefore we provide a few names to duke it out in the Bikeshed Arena:</p>
   <p>For the <code class="highlight"><c- n>out_ptr</c-></code> part:</p>
   <ul>
    <li data-md>
     <p>out_ptr</p>
    <li data-md>
     <p>c_ptr</p>
    <li data-md>
     <p>c_out_ptr</p>
    <li data-md>
     <p>out_c_ptr</p>
    <li data-md>
     <p>alloc_c_ptr</p>
    <li data-md>
     <p>out_smart</p>
    <li data-md>
     <p>ptrptr</p>
    <li data-md>
     <p>ptr_to_ptr</p>
    <li data-md>
     <p>ptr_to_smart</p>
    <li data-md>
     <p>ptr_ref</p>
   </ul>
   <p>For the <code class="highlight"><c- n>inout_ptr</c-></code> part:</p>
   <ul>
    <li data-md>
     <p>inout_ptr</p>
    <li data-md>
     <p>c_in_ptr</p>
    <li data-md>
     <p>c_inout_ptr</p>
    <li data-md>
     <p>inout_c_ptr</p>
    <li data-md>
     <p>realloc_c_ptr</p>
    <li data-md>
     <p>inout_smart,</p>
    <li data-md>
     <p>realloc_ptr_to_ptr</p>
    <li data-md>
     <p>realloc_ptr_to_smart</p>
    <li data-md>
     <p>realloc_ptr_ref</p>
   </ul>
   <p>As a pairing, <code class="highlight"><c- n>out_ptr</c-></code> and <code class="highlight"><c- n>inout_ptr</c-></code> are the most cromulent and descriptive in the authors' opinions. The type names would follow suit as <code class="highlight"><c- n>out_ptr_t</c-></code> and <code class="highlight"><c- n>inout_ptr_t</c-></code>. However, there is an argument for having a name that more appropriately captures the purpose of these abstractions. Therefore, <code class="highlight"><c- n>c_out_ptr</c-></code> and <code class="highlight"><c- n>c_inout_ptr</c-></code> would be even better, and the shortest would be <code class="highlight"><c- n>c_ptr</c-></code> and <code class="highlight"><c- n>c_in_ptr</c-></code>.</p>
   <h2 class="heading settled" data-level="7" id="wording"><span class="secno">7. </span><span class="content">Proposed Changes</span><a class="self-link" href="#wording"></a></h2>
   <p>The following wording is for the Library section, relative to <a data-link-type="biblio" href="#biblio-n4820">[n4820]</a>. This feature will go in the <code class="highlight"><c- o>&lt;</c-><c- n>memory</c-><c- o>></c-></code> header, and is added to <a href="http://eel.is/c++draft/smartptr">[<strong>utilities.smartptr</strong>] §20.11</a>, at the end as subsection 9.</p>
   <h3 class="heading settled" data-level="7.1" id="wording-feature"><span class="secno">7.1. </span><span class="content">Proposed Feature Test Macro and Header</span><a class="self-link" href="#wording-feature"></a></h3>
   <p>This should be available with the rest of the smart pointers, and thusly be included by simply including <code class="highlight"><c- o>&lt;</c-><c- n>memory</c-><c- o>></c-></code>. If there is a desire for more fine-grained control, then we recommend the header <code class="highlight"><c- o>&lt;</c-><c- n>out_ptr</c-><c- o>></c-></code> (subject to change based on bikeshed painting above). There has been some expressed desire for wanting to provide more fine-grained control of what entities the standard library produces when including headers: this paper does not explicitly propose adding such headers or doing such work, merely making a recommendation if this direction is desired by WG21.</p>
   <p>The proposed feature test macro for this is <code class="highlight"><c- n>__cpp_lib_out_ptr</c-></code>. The exposure of <code class="highlight"><c- n>__cpp_lib_out_ptr</c-></code> denotes the existence of both <code class="highlight"><c- n>inout_ptr</c-></code> and <code class="highlight"><c- n>out_ptr</c-></code>, as well as its potentially-user-specialized structs <code class="highlight"><c- n>out_ptr_t</c-></code> and <code class="highlight"><c- n>inout_ptr_t</c-></code>.</p>
   <h3 class="heading settled" data-level="7.2" id="wording-intent"><span class="secno">7.2. </span><span class="content">Intent</span><a class="self-link" href="#wording-intent"></a></h3>
   <p>The intent of this wording is to allow implementers the freedom to implement the return type from <code class="highlight"><c- n>out_ptr</c-></code> as they so choose, so long as the following criteria is met:</p>
   <ul>
    <li data-md>
     <p>the return type is of the name <code class="highlight"><c- n>inout_ptr_t</c-></code>/<code class="highlight"><c- n>out_ptr_t</c-></code> and is a template with 3 template parameters;</p>
    <li data-md>
     <p>the destructor of <code class="highlight"><c- n>inout_ptr_t</c-></code>/<code class="highlight"><c- n>out_ptr_t</c-></code> properly re-seats the pointer owned/stored by whatever smart/fancy pointer is passed as the first argument to <code class="highlight"><c- n>out_ptr</c-></code>;</p>
    <li data-md>
     <p>the proper implicit conversion operators are added to the type,</p>
    <li data-md>
     <p>the standard library implementation itself does not specialize <code class="highlight"><c- n>inout_ptr_t</c-></code>/<code class="highlight"><c- n>out_ptr_t</c-></code>'s templates, either fully or partially, so that the user can override the behavior of these templates as they so choose;</p>
    <li data-md>
     <p><code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> used with the <code class="highlight"><c- n>out_ptr</c-></code> or <code class="highlight"><c- n>inout_ptr</c-></code> functions will produce a diagnostic if it is called without a second argument meant to be passed as the deleter to a <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> call; and</p>
    <li data-md>
     <p><code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code> used with <code class="highlight"><c- n>inout_ptr_t</c-></code> will always result in a diagnostic because it is impossible to completely release the resource from its shared ownership.</p>
   </ul>
   <p>The goals of the wording are to not restrict implementation strategies (e.g., a <code class="highlight"><c- k>friend</c-></code> implementation as benchmarked above for <code class="highlight"><c- n>unique_ptr</c-></code>, or maybe a UB/IB implementation as also documented above). It is also explicitly meant to error for smart pointers whose <code class="highlight"><c- p>.</c-><c- n>reset</c-><c- p>()</c-></code> call may reset the stored deleter (á la <code class="highlight"><c- n>boost</c-><c- o>::</c-><c- n>shared_ptr</c-></code>/<code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>shared_ptr</c-></code>) and to catch programmer errors.</p>
   <h3 class="heading settled" data-level="7.3" id="wording-library"><span class="secno">7.3. </span><span class="content">Proposed Wording</span><a class="self-link" href="#wording-library"></a></h3>
   <p>Add to §17.3.2 Header <code class="highlight"><c- o>&lt;</c-><c- n>version</c-><c- o>></c-></code> [<strong>version.syn</strong>]'s <strong>Table 35</strong> an additional entry in the <code class="highlight"><c- cp>#define</c-></code> list:</p>
   <blockquote>
    <ins>
<pre class="language-cpp highlight"><c- cp>#define __cpp_lib_out_ptr </c-><c- d>/* EDITOR-CHOSEN VALUE HERE */</c-><c- cp> </c-><c- c1>// also in &lt;memory></c->
</pre>
    </ins>
   </blockquote>
   <p>Modify §20.10.1 In general [<strong>memory.general</strong>] as follows:</p>
   <blockquote>
    <p>
     <sup>1</sup> The header <code class="highlight"><c- o>&lt;</c-><c- n>memory</c-><c- o>></c-></code> defines several types and function templates that describe properties of pointers and pointer-like types, manage memory for containers and other template types, destroy objects, and construct multiple objects in uninitialized memory buffers (20.10.3 — 20.10.11). The header also defines the templates unique_ptr, shared_ptr, weak_ptr, 
     <ins>out_ptr_t, inout_ptr_t,</ins>
      and various function templates that operate on objects of these types (20.11).
    </p>
    <p>
     <ins><sup>2</sup> Let <code class="highlight"><c- n>POINTER_OF</c-><c- p>(</c-><c- n>T</c-><c- p>)</c-></code> denote a type that is: </ins>
    </p>
    <dl>
     <dd>
      <ins>— otherwise, <code class="highlight"><c- n>T</c-><c- o>::</c-><c- n>pointer</c-></code> if the <em>qualified-id</em> <code class="highlight"><c- n>T</c-><c- o>::</c-><c- n>pointer</c-></code> is valid and denotes a type,</ins>
     <dd>
      <ins>— otherwise, <code class="highlight"><c- n>T</c-><c- o>::</c-><c- n>element_type</c-><c- o>*</c-></code> if the <em>qualified-id</em> <code class="highlight"><c- n>T</c-><c- o>::</c-><c- n>element_type</c-></code> is valid and denotes a type,</ins>
     <dd>
      <ins>— otherwise, <code class="highlight"><c- n>pointer_traits</c-><c- o>&lt;</c-><c- n>T</c-><c- o>>::</c-><c- n>element_type</c-><c- o>*</c-></code>.</ins>
    </dl>
    <p></p>
    <p>
     <ins><sup>3</sup> Let <code class="highlight"><c- n>POINTER_OF_OR</c-><c- p>(</c-><c- n>T</c-><c- p>,</c-> <c- n>U</c-><c- p>)</c-></code> denote a type that is: </ins>
    </p>
    <dl>
     <dd>
      <ins>— <code class="highlight"><c- n>POINTER_OF</c-><c- p>(</c-><c- n>T</c-><c- p>)</c-></code> if <code class="highlight"><c- n>POINTER_OF</c-><c- p>(</c-><c- n>T</c-><c- p>)</c-></code> is valid and denotes a type,</ins>
     <dd>
      <ins>— otherwise, <code class="highlight"><c- n>U</c-></code>.</ins>
    </dl>
    <p></p>
   </blockquote>
   <p>Add to §20.10.2 Header <code class="highlight"><c- o>&lt;</c-><c- n>memory</c-><c- o>></c-></code> synopsis [<strong>memory.syn</strong>] the <code class="highlight"><c- n>out_ptr</c-></code>, <code class="highlight"><c- n>inout_ptr</c-></code>, <code class="highlight"><c- n>out_ptr_t</c-></code> and <code class="highlight"><c- n>inout_ptr_t</c-></code> functions and types:</p>
   <blockquote>
    <ins>
<pre class="language-cpp highlight"><c- c1>// 20.11.9, out_ptr_t</c->
<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Pointer</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- k>class</c-> <c- nc>out_ptr_t</c-><c- p>;</c->

<c- c1>// 20.11.10, out_ptr</c->
<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Pointer</c-> <c- o>=</c-> <c- b>void</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- k>auto</c-> <c- n>out_ptr</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>);</c->
	
<c- c1>// 20.11.11, inout_ptr_t</c->
<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Pointer</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- k>class</c-> <c- nc>inout_ptr_t</c-><c- p>;</c->
	
<c- c1>// 20.11.12, inout_ptr</c->
<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Pointer</c-> <c- o>=</c-> <c- b>void</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- k>auto</c-> <c- n>inout_ptr</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>);</c->
</pre>
    </ins>
   </blockquote>
   <p>Insert §20.11.9 [<strong>out_ptr.class</strong>]:</p>
   <blockquote>
    <ins>20.11.9 <strong>Class Template</strong> <code class="highlight"><c- n>out_ptr_t</c-></code> [<strong>out_ptr.class</strong>]</ins>
    <p>
     <ins><sup>1</sup> <code class="highlight"><c- n>out_ptr_t</c-></code> is a class template used types such as smart pointers (<a href="http://eel.is/c++draft/smartptr">[<strong>smartptr</strong>] 20.11</a>), with functions that use output pointer parameters.</ins>
    </p>
    <p>
     <ins><sup>2</sup> [ <i>Example:</i></ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- cp>#include</c-> &lt;memory>
<c- cp>#include</c-> &lt;cstdio>

<c- b>int</c-> <c- nf>fopen_s</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- b>FILE</c-><c- o>**</c-> <c- n>f</c-><c- p>,</c-> <c- k>const</c-> <c- b>char</c-><c- o>*</c-> <c- n>name</c-><c- p>,</c-> <c- k>const</c-> <c- b>char</c-><c- o>*</c-> <c- n>mode</c-><c- p>);</c->

<c- k>struct</c-> <c- nc>fclose_deleter</c-> <c- p>{</c->
	<c- b>void</c-> <c- nf>operator</c-><c- p>()(</c-><c- n>std</c-><c- o>::</c-><c- b>FILE</c-><c- o>*</c-> <c- n>f</c-><c- p>)</c-> <c- k>const</c-> <c- k>noexcept</c-> <c- p>{</c->
		<c- n>std</c-><c- o>::</c-><c- n>fclose</c-><c- p>(</c-><c- n>f</c-><c- p>);</c->
	<c- p>}</c->
<c- p>};</c->

<c- b>int</c-> <c- nf>main</c-><c- p>(</c-><c- b>int</c-><c- p>,</c-> <c- b>char</c-><c- o>*</c-><c- p>[])</c-> <c- p>{</c->
	<c- k>constexpr</c-> <c- k>const</c-> <c- b>char</c-><c- o>*</c-> <c- n>file_name</c-> <c- o>=</c-> <c- s>"ow.o"</c-><c- p>;</c->
	<c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>std</c-><c- o>::</c-><c- b>FILE</c-><c- p>,</c-> <c- n>fclose_deleter</c-><c- o>></c-> <c- n>file_ptr</c-><c- p>;</c->
	<c- b>int</c-> <c- n>err</c-> <c- o>=</c-> <c- n>fopen_s</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>out_ptr</c-><c- o>&lt;</c-><c- n>std</c-><c- o>::</c-><c- b>FILE</c-><c- o>*></c-><c- p>(</c-><c- n>file_ptr</c-><c- p>),</c-> <c- n>file_name</c-><c- p>,</c-> <c- s>"r+b"</c-><c- p>);</c->
	<c- k>if</c-> <c- p>(</c-><c- n>err</c-> <c- o>!=</c-> <c- mi>0</c-><c- p>)</c-> <c- p>{</c->
		<c- k>return</c-> <c- mi>1</c-><c- p>;</c->
	<c- p>}</c->
	<c- c1>// *file_ptr is valid</c->
	<c- k>return</c-> <c- mi>0</c-><c- p>;</c->
<c- p>}</c->
</pre>
    </ins>
    <ins><code class="highlight"><c- n>unique_ptr</c-></code> can be used with <code class="highlight"><c- n>out_ptr</c-></code> to be passed into an output pointer-style function, without needing to hold onto an intermediate pointer value and manually delete it on error or failure. — <i>end example</i> ].</ins>
    <ins>
<pre class="language-cpp highlight"><c- k>namespace</c-> <c- n>std</c-> <c- p>{</c->

	<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Pointer</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- k>class</c-> <c- nc>out_ptr_t</c-> <c- p>{</c->
	<c- k>public</c-><c- o>:</c->
		<c- c1>// 20.11.9.1, constructors</c->
		<c- k>explicit</c-> <c- n>out_ptr_t</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-><c- p>,</c-> <c- n>Args</c-><c- p>...);</c->
		<c- n>out_ptr_t</c-><c- p>(</c-><c- k>const</c-> <c- n>out_ptr_t</c-><c- o>&amp;</c-><c- p>)</c-> <c- o>=</c-> <c- k>delete</c-><c- p>;</c->

		<c- c1>// 20.11.9.2, destructors</c->
		<c- o>~</c-><c- n>out_ptr_t</c-><c- p>();</c->

		<c- c1>// 20.11.9.3, conversion operators</c->
		<c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
		<c- k>operator</c-> <c- b>void</c-><c- o>**</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->

	<c- k>private</c-><c- o>:</c->
		<c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>;</c-> <c- c1>// exposition only</c->
		<c- n>tuple</c-><c- o>&lt;</c-><c- n>Args</c-><c- p>...</c-><c- o>></c-> <c- n>a</c-><c- p>;</c-> <c- c1>// exposition only</c->
		<c- n>Pointer</c-> <c- n>p</c-><c- p>;</c-> <c- c1>// exposition only</c->
	<c- p>};</c->

<c- p>}</c->
</pre>
    </ins>
    <p>
     <ins><sup>3</sup> <code class="highlight"><c- n>Pointer</c-></code> shall meet the <em>Cpp17NullablePointer</em> requirements. If <code class="highlight"><c- n>Smart</c-></code> is a specialization of <code class="highlight"><c- n>shared_ptr</c-></code> and <code class="highlight"><c- k>sizeof</c-><c- p>...(</c-><c- n>Args</c-><c- p>)</c-> <c- o>==</c-> <c- mi>0</c-></code>, the program is ill-formed. [ <i>Note:</i> It is typically a user error to reset a <code class="highlight"><c- n>shared_ptr</c-></code> without specifying a deleter, as <code class="highlight"><c- n>shared_ptr</c-></code> will replace a custom deleter upon usage of <code class="highlight"><c- n>reset</c-></code>, as specified in (<a href="https://eel.is/c++draft/util.smartptr.shared.mod">[<strong>util.smartptr.shared.mod</strong>] 20.11.3.5</a>). — <i>end note</i> ]</ins>
    </p>
    <p>
     <ins><sup>4</sup> Program-defined specializations of <code class="highlight"><c- n>out_ptr_t</c-></code> that depend on at least one program-defined type need not meet the requirements for the primary template.</ins>
    </p>
    <p>
     <ins>20.11.9.1 Constructors [<strong>out_ptr.class.ctor</strong>]</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>explicit</c-> <c- nf>out_ptr_t</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>smart</c-><c- p>,</c-> <c- n>Args</c-><c- p>...</c-> <c- n>args</c-><c- p>);</c->
</pre>
    </ins>
    <p>
     <ins><sup>1</sup> Effects: initializes <code class="highlight"><c- n>s</c-></code> with <code class="highlight"><c- n>smart</c-></code>, <code class="highlight"><c- n>a</c-></code> with <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...</c-></code>, and value-initializes <code class="highlight"><c- n>p</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>2</sup> [ <i>Note:</i> The constructor is not <code class="highlight"><c- k>noexcept</c-></code> to allow for a variety of non-terminating and safe implementation strategies. For example, an implementation could allocate a <code class="highlight"><c- n>shared_ptr</c-></code>'s internal node in the constructor and let implementation-defined exceptions escape safely. The destructor can then move the allocated control block in directly and avoid any other exceptions. — <i>end note</i> ]</ins>
    </p>
    <p>
     <ins>20.11.9.3 Destructors [<strong>out_ptr.class.dtor</strong>]</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- o>~</c-><c- n>out_ptr_t</c-><c- p>();</c->
</pre>
    </ins>
    <p>
     <ins><sup>1</sup> Let <code class="highlight"><c- n>SP</c-></code> be <code class="highlight"><c- n>POINTER_OF_OR</c-><c- p>(</c-><c- n>Smart</c-><c- p>,</c-> <c- n>Pointer</c-><c- p>)</c-></code> ([<strong>memory.general</strong>] 20.10.1).</ins>
    </p>
    <p>
     <ins><sup>2</sup> Effects: Equivalent to: </ins>
    </p>
    <dl>
     <dd>
      <ins>— <code class="highlight"><c- k>if</c-> <c- p>(</c-><c- n>p</c-><c- p>)</c-> <c- p>{</c-> <c- n>apply</c-><c- p>([</c-><c- o>&amp;</c-><c- p>](</c-><c- k>auto</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>)</c-> <c- p>{</c-> <c- n>s</c-><c- p>.</c-><c- n>reset</c-><c- p>(</c-> <c- k>static_cast</c-><c- o>&lt;</c-><c- n>SP</c-><c- o>></c-><c- p>(</c-><c- n>p</c-><c- p>),</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...</c-> <c- p>);</c-> <c- p>},</c-> <c- n>std</c-><c- o>::</c-><c- n>move</c-><c- p>(</c-><c- n>a</c-><c- p>))</c-> <c- p>}</c-></code> if the expression <code class="highlight"><c- n>s</c-><c- p>.</c-><c- n>reset</c-><c- p>(</c-><c- k>static_cast</c-><c- o>&lt;</c-><c- n>SP</c-><c- o>></c-><c- p>(</c-><c- n>p</c-><c- p>),</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...)</c-></code> is well-formed,</ins>
     <dd>
      <ins>— otherwise <code class="highlight"><c- k>if</c-> <c- p>(</c-><c- n>p</c-><c- p>)</c-> <c- p>{</c-> <c- n>apply</c-><c- p>([</c-><c- o>&amp;</c-><c- p>](</c-><c- k>auto</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>)</c-> <c- p>{</c-> <c- n>s</c-> <c- o>=</c-> <c- n>Smart</c-><c- p>(</c-> <c- k>static_cast</c-><c- o>&lt;</c-><c- n>SP</c-><c- o>></c-><c- p>(</c-><c- n>p</c-><c- p>),</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...</c-> <c- p>);</c-> <c- p>},</c-> <c- n>std</c-><c- o>::</c-><c- n>move</c-><c- p>(</c-><c- n>a</c-><c- p>))</c-> <c- p>}</c-></code> if <code class="highlight"><c- n>is_constructible_v</c-><c- o>&lt;</c-><c- n>Smart</c-><c- p>,</c-> <c- n>SP</c-><c- p>,</c-> <c- n>Args</c-><c- p>...</c-><c- o>></c-></code> is <code class="highlight">true</code>,</ins>
     <dd>
      <ins>— otherwise the program is ill-formed.</ins>
    </dl>
    <p></p>
    <p>
     <ins>20.11.9.4 Conversions [<strong>out_ptr.class.conv</strong>]</ins>
    </p>
    <p>
     <ins><sup>1</sup> Evaluations of the functions in this subclause on the same object may conflict (<a href="http://eel.is/c++draft/intro.races">[intro.races]</a>).</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
</pre>
    </ins>
    <p>
     <ins><sup>2</sup> Preconditions: <code class="highlight"><c- k>operator</c-> <c- b>void</c-><c- o>**</c-><c- p>()</c-></code> has not been called on <code class="highlight"><c- o>*</c-><c- k>this</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>3</sup> Returns: <code class="highlight"><c- n>addressof</c-><c- p>(</c-><c- k>const_cast</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>&amp;></c-><c- p>(</c-><c- n>p</c-><c- p>))</c-></code>.</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>operator</c-> <c- b>void</c-><c- o>**</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
</pre>
    </ins>
    <p>
     <ins><sup>4</sup> Preconditions: <code class="highlight"><c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-><c- p>()</c-></code> has not been called on <code class="highlight"><c- o>*</c-><c- k>this</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>5</sup> Constraints: <code class="highlight"><c- n>is_same_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- p>,</c-> <c- b>void</c-><c- o>*></c-></code> is <code class="highlight">false</code>.</ins>
    </p>
    <p>
     <ins><sup>6</sup> Mandates: <code class="highlight"><c- n>is_pointer_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>></c-></code> is <code class="highlight">true</code>.</ins>
    </p>
    <p>
     <ins><sup>7</sup> Returns: A pointer value <code class="highlight"><c- n>v</c-></code>, such that: </ins>
    </p>
    <dl>
     <dd>
      <ins>— the initial value <code class="highlight"><c- o>*</c-><c- n>v</c-></code> is equivalent to <code class="highlight"><c- k>static_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>*></c-><c- p>(</c-><c- n>p</c-><c- p>)</c-></code>,</ins>
     <dd>
      <ins>— and, any modification of <code class="highlight"><c- o>*</c-><c- n>v</c-></code> that is not followed by subsequent modification of <code class="highlight"><c- o>*</c-><c- k>this</c-></code>, affects the value of <code class="highlight"><c- n>p</c-></code> during the destruction of <code class="highlight"><c- o>*</c-><c- k>this</c-></code>, such that <code class="highlight"><c- k>static_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>*></c-><c- p>(</c-><c- n>p</c-><c- p>)</c-> <c- o>==</c-> <c- o>*</c-><c- n>v</c-></code>.</ins>
    </dl>
    <p></p>
    <p>
     <ins><sup>8</sup> Remarks: Accessing <code class="highlight"><c- o>*</c-><c- n>v</c-></code> outside the lifetime of <code class="highlight"><c- o>*</c-><c- k>this</c-></code> has undefined behavior.</ins>
    </p>
    <p>
     <ins><sup>9</sup> [ <i>Note</i>: <code class="highlight"><c- k>reinterpret_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>**></c-><c- p>(</c-><c- k>static_cast</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>*></c-><c- p>(</c-><c- o>*</c-><c- k>this</c-><c- p>))</c-></code> can be a viable implementation strategy. — <i>end note</i> ]</ins>
    </p>
   </blockquote>
   <p>Insert §20.11.10 [<strong>out_ptr</strong>]:</p>
   <blockquote>
    <p>
     <ins>20.11.10 <strong>Function Template</strong> <code class="highlight"><c- n>out_ptr</c-></code> [<strong>out_ptr</strong>]</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Pointer</c-> <c- o>=</c-> <c- b>void</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
  <c- k>auto</c-> <c- n>out_ptr</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>);</c->
</pre>
    </ins>
    <p>
     <ins><sup>1</sup> Let <code class="highlight"><c- n>P</c-></code> be <code class="highlight"><c- n>Pointer</c-></code> if <code class="highlight"><c- n>is_void_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>></c-></code> is <code class="highlight">false</code>, otherwise <code class="highlight"><c- n>POINTER_OF</c-><c- p>(</c-><c- n>Smart</c-><c- p>)</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>2</sup> Returns: <code class="highlight"><c- n>out_ptr_t</c-><c- o>&lt;</c-><c- n>Smart</c-><c- p>,</c-> <c- n>P</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-><c- o>></c-><c- p>(</c-><c- n>s</c-><c- p>,</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...)</c-></code></ins>
    </p>
   </blockquote>
   <p>Insert §20.11.11 [<strong>inout_ptr.class</strong>]:</p>
   <blockquote>
    <ins>20.11.11 <strong>Class Template</strong> <code class="highlight"><c- n>inout_ptr_t</c-></code> [<strong>inout_ptr.class</strong>]</ins>
    <p>
     <ins><sup>1</sup> <code class="highlight"><c- n>inout_ptr_t</c-></code> is a class template used types such as smart pointers (<a href="http://eel.is/c++draft/smartptr">[<strong>smartptr</strong>] 20.11</a>), with functions that use output pointer parameters whose dereferenced values may first be deleted before being set to another allocated value.</ins>
    </p>
    <p>
     <ins><sup>2</sup> [ <i>Example:</i></ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- cp>#include</c-> &lt;memory>

<c- k>struct</c-> <c- nc>StarFish</c-><c- o>*</c-> <c- n>starfish_alloc</c-><c- p>();</c->
<c- b>int</c-> <c- nf>starfish_populate</c-><c- p>(</c-><c- k>struct</c-> <c- nc>StarFish</c-><c- o>**</c-> <c- n>ps</c-><c- p>,</c-> <c- k>const</c-> <c- b>char</c-> <c- o>*</c-><c- n>description</c-><c- p>);</c->

<c- k>struct</c-> <c- nc>StarFishDeleter</c-> <c- p>{</c->
	<c- b>void</c-> <c- nf>operator</c-><c- p>()</c-> <c- p>(</c-><c- k>struct</c-> <c- nc>StarFish</c-><c- o>*</c-> <c- n>c</c-><c- p>)</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
<c- p>};</c->

<c- k>using</c-> <c- n>StarFishPtr</c-> <c- o>=</c-> <c- n>std</c-><c- o>::</c-><c- n>unique_ptr</c-><c- o>&lt;</c-><c- n>StarFish</c-><c- p>,</c-> <c- n>StarFishDeleter</c-><c- o>></c-><c- p>;</c->

<c- b>int</c-> <c- nf>main</c-><c- p>(</c-><c- b>int</c-><c- p>,</c-> <c- b>char</c-><c- o>*</c-><c- p>[])</c-> <c- p>{</c->
	<c- n>StarFishPtr</c-> <c- n>peach</c-><c- p>(</c-><c- n>starfish_context</c-><c- p>());</c->
	<c- c1>// ...</c->
	<c- c1>// used, need to re-make</c->
	<c- b>int</c-> <c- n>err</c-> <c- o>=</c-> <c- n>starfish_populate</c-><c- p>(</c-><c- n>std</c-><c- o>::</c-><c- n>inout_ptr</c-><c- p>(</c-><c- n>peach</c-><c- p>),</c-> <c- s>"caring clown-fish liker"</c-><c- p>);</c->
	<c- k>return</c-> <c- n>err</c-><c- p>;</c->
<c- p>}</c->
</pre>
    </ins>
    <ins>A <code class="highlight"><c- n>unique_ptr</c-></code> can be used with <code class="highlight"><c- n>inout_ptr</c-></code> to be passed into an output pointer-style function. The original value will be properly deleted according to the function it is used with and a new value reset in its place. — <i>end example</i> ].</ins>
    <ins>
<pre class="language-cpp highlight"><c- k>namespace</c-> <c- n>std</c-> <c- p>{</c->

	<c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Pointer</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- k>class</c-> <c- nc>inout_ptr_t</c-> <c- p>{</c->
	<c- k>public</c-><c- o>:</c->
		<c- c1>// 20.11.11.1, constructors</c->
		<c- k>explicit</c-> <c- n>inout_ptr_t</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-><c- p>,</c-> <c- n>Args</c-><c- p>...);</c->
		<c- n>inout_ptr_t</c-><c- p>(</c-><c- k>const</c-> <c- n>inout_ptr_t</c-><c- o>&amp;</c-><c- p>)</c-> <c- o>=</c-> <c- k>delete</c-><c- p>;</c->

		<c- c1>// 20.11.11.2, destructors</c->
		<c- o>~</c-><c- n>inout_ptr_t</c-><c- p>();</c->

		<c- c1>// 20.11.11.3, conversion operators</c->
		<c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
		<c- k>operator</c-> <c- b>void</c-><c- o>**</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->

	<c- k>private</c-><c- o>:</c->
		<c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>;</c-> <c- c1>// exposition only</c->
		<c- n>tuple</c-><c- o>&lt;</c-><c- n>Args</c-><c- p>...</c-><c- o>></c-> <c- n>a</c-><c- p>;</c-> <c- c1>// exposition only</c->
		<c- n>Pointer</c-> <c- n>p</c-><c- p>;</c-> <c- c1>// exposition only</c->
	<c- p>};</c->

<c- p>}</c->
</pre>
    </ins>
    <p>
     <ins><sup>3</sup> <code class="highlight"><c- n>Pointer</c-></code> shall meet the <em>Cpp17NullablePointer</em> requirements. If <code class="highlight"><c- n>Smart</c-></code> is a specialization of <code class="highlight"><c- n>shared_ptr</c-></code>, the program is ill-formed. [ <i>Note:</i> It is impossible to properly acquire unique ownership of the managed resource from a <code class="highlight"><c- n>shared_ptr</c-></code> given its shared ownership model. — <i>end note</i> ]</ins>
    </p>
    <p>
     <ins><sup>4</sup> Program-defined specializations of <code class="highlight"><c- n>inout_ptr_t</c-></code> that depend on at least one program-defined type need not meet the requirements for the primary template.</ins>
    </p>
    <p>
     <ins>20.11.11.1 Constructors [<strong>inout_ptr.class.ctor</strong>]</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>explicit</c-> <c- nf>inout_ptr_t</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>smart</c-><c- p>,</c-> <c- n>Args</c-><c- p>...</c-> <c- n>args</c-><c- p>);</c->
</pre>
    </ins>
    <p>
     <ins><sup>1</sup> Effects: initializes <code class="highlight"><c- n>s</c-></code> with <code class="highlight"><c- n>smart</c-></code>, <code class="highlight"><c- n>a</c-></code> with <code class="highlight"><c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...</c-></code>, and <code class="highlight"><c- n>p</c-></code> to either </ins>
    </p>
    <dl>
     <dd>
      <ins>— <code class="highlight"><c- n>smart</c-></code> if <code class="highlight"><c- n>is_pointer_v</c-><c- o>&lt;</c-><c- n>Smart</c-><c- o>></c-></code> is <code class="highlight">true</code>,</ins>
     <dd>
      <ins>— otherwise, <code class="highlight"><c- n>smart</c-><c- p>.</c-><c- n>get</c-><c- p>()</c-></code>.</ins>
    </dl>
    <p></p>
    <p>
     <ins><sup>2</sup> Remarks: An implementation may call <code class="highlight"><c- n>s</c-><c- p>.</c-><c- n>release</c-><c- p>()</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>3</sup> [ <i>Note:</i> The constructor is not <code class="highlight"><c- k>noexcept</c-></code> to allow for a variety of non-terminating and safe implementation strategies. For example, an intrusive pointer implementation with a control block could allocate in the constructor and safely fail with an exception. — <i>end note</i> ]</ins>
    </p>
    <p>
     <ins>20.11.11.2 Destructors [<strong>inout_ptr.class.dtor</strong>]</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- o>~</c-><c- n>inout_ptr_t</c-><c- p>();</c->
</pre>
    </ins>
    <p>
     <ins><sup>1</sup> Let <code class="highlight"><c- n>SP</c-></code> be <code class="highlight"><c- n>POINTER_OF_OR</c-><c- p>(</c-><c- n>Smart</c-><c- p>,</c-> <c- n>Pointer</c-><c- p>)</c-></code> ([<strong>memory.general</strong>] 20.10.1).</ins>
    </p>
    <p>
     <ins><sup>2</sup> Let <code class="highlight"><c- n>release</c-><c- o>-</c-><c- n>statement</c-></code> be <code class="highlight"><c- n>s</c-><c- p>.</c-><c- n>release</c-><c- p>();</c-></code> if an implementation does not call <code class="highlight"><c- n>s</c-><c- p>.</c-><c- n>release</c-><c- p>()</c-></code> in the constructor. Otherwise, it is empty.</ins>
    </p>
    <p>
     <ins><sup>3</sup> Effects: Equivalent to: </ins>
    </p>
    <dl>
     <dd>
      <ins>—<code class="highlight"><c- k>if</c-> <c- p>(</c-><c- n>p</c-><c- p>)</c-> <c- p>{</c-> <c- n>apply</c-><c- p>([</c-><c- o>&amp;</c-><c- p>](</c-><c- k>auto</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>)</c-> <c- p>{</c-> <c- n>s</c-> <c- o>=</c-> <c- n>Smart</c-><c- p>(</c-> <c- k>static_cast</c-><c- o>&lt;</c-><c- n>SP</c-><c- o>></c-><c- p>(</c-><c- n>p</c-><c- p>),</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...</c-> <c- p>);</c-> <c- p>},</c-> <c- n>std</c-><c- o>::</c-><c- n>move</c-><c- p>(</c-><c- n>a</c-><c- p>));</c-> <c- p>}</c-></code> if <code class="highlight"><c- n>is_pointer_v</c-><c- o>&lt;</c-><c- n>Smart</c-><c- o>></c-></code> is <code class="highlight">true</code>,</ins>
     <dd>
      <ins>— otherwise, <code class="highlight"><c- k>if</c-> <c- p>(</c-><c- n>p</c-><c- p>)</c-> <c- p>{</c-> <c- n>apply</c-><c- p>([</c-><c- o>&amp;</c-><c- p>](</c-><c- k>auto</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>)</c-> <c- p>{</c-> <c- n>release</c-><c- o>-</c-><c- n>statement</c-><c- p>;</c-> <c- n>s</c-><c- p>.</c-><c- n>reset</c-><c- p>(</c-> <c- k>static_cast</c-><c- o>&lt;</c-><c- n>SP</c-><c- o>></c-><c- p>(</c-><c- n>p</c-><c- p>),</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...</c-> <c- p>);</c-> <c- p>},</c-> <c- n>std</c-><c- o>::</c-><c- n>move</c-><c- p>(</c-><c- n>a</c-><c- p>));</c-> <c- p>}</c-></code> if the expression <code class="highlight"><c- n>s</c-><c- p>.</c-><c- n>reset</c-><c- p>(</c-><c- k>static_cast</c-><c- o>&lt;</c-><c- n>SP</c-><c- o>></c-><c- p>(</c-><c- n>p</c-><c- p>),</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...)</c-></code> is well-formed,</ins>
     <dd>
      <ins>— otherwise, <code class="highlight"><c- k>if</c-> <c- p>(</c-><c- n>p</c-><c- p>)</c-> <c- p>{</c-> <c- n>apply</c-><c- p>([</c-><c- o>&amp;</c-><c- p>](</c-><c- k>auto</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>)</c-> <c- p>{</c-> <c- n>release</c-><c- o>-</c-><c- n>statement</c-><c- p>;</c-> <c- n>s</c-> <c- o>=</c-> <c- n>Smart</c-><c- p>(</c-> <c- k>static_cast</c-><c- o>&lt;</c-><c- n>SP</c-><c- o>></c-><c- p>(</c-><c- n>p</c-><c- p>),</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...</c-> <c- p>);</c-> <c- p>},</c-> <c- n>std</c-><c- o>::</c-><c- n>move</c-><c- p>(</c-><c- n>a</c-><c- p>));</c-> <c- p>}</c-></code> if <code class="highlight"><c- n>is_constructible_v</c-><c- o>&lt;</c-><c- n>Smart</c-><c- p>,</c-> <c- n>SP</c-><c- p>,</c-> <c- n>Args</c-><c- p>...</c-><c- o>></c-></code> is <code class="highlight">true</code>,</ins>
     <dd>
      <ins>— otherwise, the program is ill-formed.</ins>
    </dl>
    <p></p>
    <p>
     <ins>20.11.11.3 Conversions [<strong>inout_ptr.class.conv</strong>]</ins>
    </p>
    <p>
     <ins><sup>1</sup> Evaluations of the functions in this subclause on the same object may conflict (<a href="http://eel.is/c++draft/intro.races">[intro.races]</a>).</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
</pre>
    </ins>
    <p>
     <ins><sup>2</sup> Preconditions: <code class="highlight"><c- k>operator</c-> <c- b>void</c-><c- o>**</c-><c- p>()</c-></code> has not been called on <code class="highlight"><c- o>*</c-><c- k>this</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>3</sup> Returns: <code class="highlight"><c- n>addressof</c-><c- p>(</c-><c- k>const_cast</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>&amp;></c-><c- p>(</c-><c- n>p</c-><c- p>))</c-></code>.</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>operator</c-> <c- b>void</c-><c- o>**</c-><c- p>()</c-> <c- k>const</c-> <c- k>noexcept</c-><c- p>;</c->
</pre>
    </ins>
    <p>
     <ins><sup>4</sup> Preconditions: <code class="highlight"><c- k>operator</c-> <c- n>Pointer</c-><c- o>*</c-><c- p>()</c-></code> has not been called on <code class="highlight"><c- o>*</c-><c- k>this</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>5</sup> Constraints: <code class="highlight"><c- n>is_same_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- p>,</c-> <c- b>void</c-><c- o>*></c-></code> is <code class="highlight">false</code>.</ins>
    </p>
    <p>
     <ins><sup>6</sup> Mandates: <code class="highlight"><c- n>is_pointer_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>></c-></code> is <code class="highlight">true</code>.</ins>
    </p>
    <p>
     <ins><sup>7</sup> Returns: A pointer value <code class="highlight"><c- n>v</c-></code>, such that: </ins>
    </p>
    <dl>
     <dd>
      <ins>— the initial value <code class="highlight"><c- o>*</c-><c- n>v</c-></code> is equivalent to <code class="highlight"><c- k>static_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>*></c-><c- p>(</c-><c- n>p</c-><c- p>)</c-></code>,</ins>
     <dd>
      <ins>— and, any modification of <code class="highlight"><c- o>*</c-><c- n>v</c-></code> that is not followed by subsequent modification of <code class="highlight"><c- o>*</c-><c- k>this</c-></code>, affects the value of <code class="highlight"><c- n>p</c-></code> during the destruction of <code class="highlight"><c- o>*</c-><c- k>this</c-></code>, such that <code class="highlight"><c- k>static_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>*></c-><c- p>(</c-><c- n>p</c-><c- p>)</c-> <c- o>==</c-> <c- o>*</c-><c- n>v</c-></code>.</ins>
    </dl>
    <p></p>
    <p>
     <ins><sup>8</sup> Remarks: Accessing <code class="highlight"><c- o>*</c-><c- n>v</c-></code> outside the lifetime of <code class="highlight"><c- o>*</c-><c- k>this</c-></code> has undefined behavior.</ins>
    </p>
    <p>
     <ins><sup>9</sup> [ <i>Note</i>: <code class="highlight"><c- k>reinterpret_cast</c-><c- o>&lt;</c-><c- b>void</c-><c- o>**></c-><c- p>(</c-><c- k>static_cast</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>*></c-><c- p>(</c-><c- o>*</c-><c- k>this</c-><c- p>))</c-></code> can be a viable implementation strategy. — <i>end note</i> ]</ins>
    </p>
   </blockquote>
   <p>Insert §20.11.12 [<strong>inout_ptr</strong>]:</p>
   <blockquote>
    <p>
     <ins>20.11.12 <strong>Function Template</strong> <code class="highlight"><c- n>inout_ptr</c-></code> [<strong>inout_ptr</strong>]</ins>
    </p>
    <ins>
<pre class="language-cpp highlight"><c- k>template</c-> <c- o>&lt;</c-><c- k>class</c-> <c- nc>Pointer</c-> <c- o>=</c-> <c- b>void</c-><c- p>,</c-> <c- k>class</c-> <c- nc>Smart</c-><c- p>,</c-> <c- k>class</c-><c- p>...</c-> <c- n>Args</c-><c- o>></c->
	<c- k>auto</c-> <c- n>inout_ptr</c-><c- p>(</c-><c- n>Smart</c-><c- o>&amp;</c-> <c- n>s</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-> <c- n>args</c-><c- p>);</c->
</pre>
    </ins>
    <p>
     <ins><sup>1</sup> Let <code class="highlight"><c- n>P</c-></code> be <code class="highlight"><c- n>Pointer</c-></code> if <code class="highlight"><c- n>is_void_v</c-><c- o>&lt;</c-><c- n>Pointer</c-><c- o>></c-></code> is <code class="highlight">false</code>, otherwise <code class="highlight"><c- n>POINTER_OF</c-><c- p>(</c-><c- n>Smart</c-><c- p>)</c-></code>.</ins>
    </p>
    <p>
     <ins><sup>2</sup> Returns: <code class="highlight"><c- n>inout_ptr_t</c-><c- o>&lt;</c-><c- n>Smart</c-><c- p>,</c-> <c- n>P</c-><c- p>,</c-> <c- n>Args</c-><c- o>&amp;&amp;</c-><c- p>...</c-><c- o>></c-><c- p>(</c-><c- n>s</c-><c- p>,</c-> <c- n>std</c-><c- o>::</c-><c- n>forward</c-><c- o>&lt;</c-><c- n>Args</c-><c- o>></c-><c- p>(</c-><c- n>args</c-><c- p>)...)</c-></code>.</ins>
    </p>
   </blockquote>
   <h2 class="heading settled" data-level="8" id="acknowledgements"><span class="secno">8. </span><span class="content">Acknowledgements</span><a class="self-link" href="#acknowledgements"></a></h2>
   <p>Thank you to Lounge&lt;C++>'s Cicada, melak47, rmf, and Puppy for reporting their initial experiences with such an abstraction nearly 5 years ago and helping JeanHeyd Meneide implement the first version of this.</p>
   <p>Thank you to Mark Zeren for help in this investigation and analysis of the performance of smart pointers.</p>
   <p>Thank you to Tim Song for reviewing the wording for this paper and vastly improving it!</p>
   <p>Thank you to Zach Laine and the Boost Community for reviewing the code.</p>
  </main>
<script>
(function() {
  "use strict";
  var collapseSidebarText = '<span aria-hidden="true">←</span> '
                          + '<span>Collapse Sidebar</span>';
  var expandSidebarText   = '<span aria-hidden="true">→</span> '
                          + '<span>Pop Out Sidebar</span>';
  var tocJumpText         = '<span aria-hidden="true">↑</span> '
                          + '<span>Jump to Table of Contents</span>';

  var sidebarMedia = window.matchMedia('screen and (min-width: 78em)');
  var autoToggle   = function(e){ toggleSidebar(e.matches) };
  if(sidebarMedia.addListener) {
    sidebarMedia.addListener(autoToggle);
  }

  function toggleSidebar(on) {
    if (on == undefined) {
      on = !document.body.classList.contains('toc-sidebar');
    }

    /* Don’t scroll to compensate for the ToC if we’re above it already. */
    var headY = 0;
    var head = document.querySelector('.head');
    if (head) {
      // terrible approx of "top of ToC"
      headY += head.offsetTop + head.offsetHeight;
    }
    var skipScroll = window.scrollY < headY;

    var toggle = document.getElementById('toc-toggle');
    var tocNav = document.getElementById('toc');
    if (on) {
      var tocHeight = tocNav.offsetHeight;
      document.body.classList.add('toc-sidebar');
      document.body.classList.remove('toc-inline');
      toggle.innerHTML = collapseSidebarText;
      if (!skipScroll) {
        window.scrollBy(0, 0 - tocHeight);
      }
      tocNav.focus();
      sidebarMedia.addListener(autoToggle); // auto-collapse when out of room
    }
    else {
      document.body.classList.add('toc-inline');
      document.body.classList.remove('toc-sidebar');
      toggle.innerHTML = expandSidebarText;
      if (!skipScroll) {
        window.scrollBy(0, tocNav.offsetHeight);
      }
      if (toggle.matches(':hover')) {
        /* Unfocus button when not using keyboard navigation,
           because I don’t know where else to send the focus. */
        toggle.blur();
      }
    }
  }

  function createSidebarToggle() {
    /* Create the sidebar toggle in JS; it shouldn’t exist when JS is off. */
    var toggle = document.createElement('a');
      /* This should probably be a button, but appearance isn’t standards-track.*/
    toggle.id = 'toc-toggle';
    toggle.class = 'toc-toggle';
    toggle.href = '#toc';
    toggle.innerHTML = collapseSidebarText;

    sidebarMedia.addListener(autoToggle);
    var toggler = function(e) {
      e.preventDefault();
      sidebarMedia.removeListener(autoToggle); // persist explicit off states
      toggleSidebar();
      return false;
    }
    toggle.addEventListener('click', toggler, false);


    /* Get <nav id=toc-nav>, or make it if we don’t have one. */
    var tocNav = document.getElementById('toc-nav');
    if (!tocNav) {
      tocNav = document.createElement('p');
      tocNav.id = 'toc-nav';
      /* Prepend for better keyboard navigation */
      document.body.insertBefore(tocNav, document.body.firstChild);
    }
    /* While we’re at it, make sure we have a Jump to Toc link. */
    var tocJump = document.getElementById('toc-jump');
    if (!tocJump) {
      tocJump = document.createElement('a');
      tocJump.id = 'toc-jump';
      tocJump.href = '#toc';
      tocJump.innerHTML = tocJumpText;
      tocNav.appendChild(tocJump);
    }

    tocNav.appendChild(toggle);
  }

  var toc = document.getElementById('toc');
  if (toc) {
    createSidebarToggle();
    toggleSidebar(sidebarMedia.matches);

    /* If the sidebar has been manually opened and is currently overlaying the text
       (window too small for the MQ to add the margin to body),
       then auto-close the sidebar once you click on something in there. */
    toc.addEventListener('click', function(e) {
      if(e.target.tagName.toLowerCase() == "a" && document.body.classList.contains('toc-sidebar') && !sidebarMedia.matches) {
        toggleSidebar(false);
      }
    }, false);
  }
  else {
    console.warn("Can’t find Table of Contents. Please use <nav id='toc'> around the ToC.");
  }

  /* Wrap tables in case they overflow */
  var tables = document.querySelectorAll(':not(.overlarge) > table.data, :not(.overlarge) > table.index');
  var numTables = tables.length;
  for (var i = 0; i < numTables; i++) {
    var table = tables[i];
    var wrapper = document.createElement('div');
    wrapper.className = 'overlarge';
    table.parentNode.insertBefore(wrapper, table);
    wrapper.appendChild(table);
  }

})();
</script>
  <h2 class="no-num no-ref heading settled" id="references"><span class="content">References</span><a class="self-link" href="#references"></a></h2>
  <h3 class="no-num no-ref heading settled" id="informative"><span class="content">Informative References</span><a class="self-link" href="#informative"></a></h3>
  <dl>
   <dt id="biblio-adobe-out-ptr">[ADOBE-OUT-PTR]
   <dd>Adobe. <a href="https://github.com/adobe/chromium/blob/master/base/win/scoped_comptr.h#L80">Adobe Chromium: scoped_comptr</a>. November 25th, 2018. URL: <a href="https://github.com/adobe/chromium/blob/master/base/win/scoped_comptr.h#L80">https://github.com/adobe/chromium/blob/master/base/win/scoped_comptr.h#L80</a>
   <dt id="biblio-c-com-ptr">[C-COM-PTR]
   <dd>Microsoft. <a href="https://msdn.microsoft.com/en-us/library/31k6d0k7.aspx">c-com-ptr::operator&amp; Operator</a>. 2015. URL: <a href="https://msdn.microsoft.com/en-us/library/31k6d0k7.aspx">https://msdn.microsoft.com/en-us/library/31k6d0k7.aspx</a>
   <dt id="biblio-n4820">[N4820]
   <dd>Richard Smith. <a href="https://wg21.link/n4820">Working Draft, Standard for Programming Language C++</a>. 18 June 2019. URL: <a href="https://wg21.link/n4820">https://wg21.link/n4820</a>
   <dt id="biblio-old-new-thing-handle-proxy">[OLD-NEW-THING-HANDLE-PROXY]
   <dd>Raymond Chen. <a href="https://devblogs.microsoft.com/old-new-thing/20190429-00/?p=102456">Spotting problems with destructors for C++ temporaries</a>. April 29th, 2019. URL: <a href="https://devblogs.microsoft.com/old-new-thing/20190429-00/?p=102456">https://devblogs.microsoft.com/old-new-thing/20190429-00/?p=102456</a>
   <dt id="biblio-p0468">[P0468]
   <dd>Isabella Muerte. <a href="http://wg21.link/p0468">A Proposal to Add an Intrusive Smart Pointer to the C++ Standard Library</a>. October 15th, 2016. URL: <a href="http://wg21.link/p0468">http://wg21.link/p0468</a>
   <dt id="biblio-std-proposals-overload-operator">[STD-PROPOSALS-OVERLOAD-OPERATOR]
   <dd>isocpp.org Forums. <a href="https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/8MQhnL9rXBI">Add operator&amp;() to std::unique_ptr to get internal pointer</a>. April 15th, 2018. URL: <a href="https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/8MQhnL9rXBI">https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/8MQhnL9rXBI</a>
   <dt id="biblio-wrl-comptrref">[WRL-COMPTRREF]
   <dd>Microsoft. <a href="https://docs.microsoft.com/en-us/cpp/windows/comptrref-class">ComPtrRef Class</a>. November 4th, 2016. URL: <a href="https://docs.microsoft.com/en-us/cpp/windows/comptrref-class">https://docs.microsoft.com/en-us/cpp/windows/comptrref-class</a>
  </dl>