aboutsummaryrefslogtreecommitdiff
path: root/docs/AutomaticReferenceCounting.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/AutomaticReferenceCounting.html')
-rw-r--r--docs/AutomaticReferenceCounting.html14
1 files changed, 14 insertions, 0 deletions
diff --git a/docs/AutomaticReferenceCounting.html b/docs/AutomaticReferenceCounting.html
index 3d34ddb310..e7b8f22365 100644
--- a/docs/AutomaticReferenceCounting.html
+++ b/docs/AutomaticReferenceCounting.html
@@ -978,9 +978,23 @@ pointer type. Such code is still ill-formed.</p>
to be intentional in template code.</p></div>
</div> <!-- ownership.inference.indirect_parameters -->
+
+<div id="ownership.inference.template_arguments">
+<h1>Template arguments</h1>
+
+<p>If a template argument for a template type parameter is an
+retainable object owner type that does not have an explicit ownership
+qualifier, it is adjusted to have <tt>__strong</tt>
+qualification. This adjustment occurs both regardless of whether the
+template argument was deduced or explicitly specified. </p>
+
+<div class="rationale"><p>Rationale: <tt>__strong</tt> is a useful default for containers (e.g., <tt>std::vector&lt;id&gt;</tt>), which would otherwise require explicit qualification. Moreover, unqualified retainable object pointer types are unlikely to be useful within templates, since they generally need to have a qualifier applied to the before being used.</p></div>
+
+</div> <!-- ownership.inference.template_arguments -->
</div> <!-- ownership.inference -->
</div> <!-- ownership -->
+
<div id="family">
<h1>Method families</h1>