<html><head><title>Constexpr Library Additions: future</title><style type="text/css">ol{margin:0;padding:0}p{margin:0}.c1{color:#000000;font-size:14pt;font-family:Arial;font-weight:bold}.c6{color:#000099;font-size:11pt;text-decoration:underline;font-family:Arial}.c2{color:#000000;font-size:24pt;font-family:Arial;font-weight:bold}.c0{line-height:1.15;text-indent:0pt;direction:ltr}.c7{color:#000000;font-size:18pt;font-family:Arial}.c3{color:#000000;font-size:11pt;font-family:Arial}.c9{padding-top:14.0pt;padding-bottom:4.0pt}.c5{background-color:#b6d7a8}.c8{background-color:#ffffff}.c4{font-weight:bold}</style></head><body class="c8"><p class="c0"><span class="c7 c4">Constexpr Library Additions: future</span></p><p class="c0"><span class="c2">&nbsp;</span></p><p class="c0"><span class="c3">ISO/IEC JTC1 SC22 WG21 N3230 = 10-0220 - 2010-11-24</span></p><p class="c0"><span class="c3">Benjamin Kosnik, </span><span class="c6"><a href="mailto:bkoz@redhat.com">bkoz@redhat.com</a></span></p><p class="c0"><span class="c3">Jonathan Wakely, jwakely.gcc@gmail.com</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3 c4">Addresses</span><span class="c1">: </span><span class="c3">LWG 2013</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c1">Introduction</span></p><p class="c0"><span class="c4 c7">&nbsp;</span></p><p class="c0"><span class="c3">This paper details use of the ISO C++0x constexpr feature, as initially introduced in &ldquo;Generalized Constant Expressions &mdash; Revision 5&rdquo; (N2235) and incorporating all other subsequent changes as per ISO C++ draft N3126. Several CWG issues also influence the language with respect to constexpr: see issues 1099, 1125, 1194, 1195, 1197, 1198, 1199 and c++-std-core postings number 17890 and 17912. Additional implementation experience has motivated the following changes and additions to the library specification. </span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0 c9"><span class="c1">Proposed Changes</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3">Add the following:</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Mark default constructors of future constexpr.</span></p><p class="c0"><span class="c3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- Mark default constructors of shared_future constexpr.</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c1">Proposed wording</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3 c4">a) Modify 30.6.6 &nbsp;as follows:</span></p><p class="c0"><span class="c3 c4">&nbsp;</span></p><p class="c0"><span class="c3 c4 c5">constexpr</span><span class="c3"> future();</span></p><p class="c0"><span class="c3">&nbsp;</span></p><p class="c0"><span class="c3 c4">b) Modify 30.6.7 &nbsp;as follows:</span></p><p class="c0"><span class="c3 c4">&nbsp;</span></p><p class="c0"><span class="c3 c5 c4">constexpr</span><span class="c3"> shared_future();</span></p></body></html>