<HTML>
<HEAD>
   <style>
     <!--
       P.indented {margin-left: 4em}
       XMP.indented {margin-left: 4em}
     -->
     ins {background-color:#a0ffa0}
     del {background-color:#ffa0a0}
   </style>
   <TITLE>
     Removing Export
   </TITLE>
</HEAD>

<BODY>

<br>
10-0055/N3065
<br>
John Spicer, Edison Design Group, jhs@edg.com
<br>
2010-03-09
<br>
Revision 0

<BR CLEAR=ALL>

<CENTER>
<H2>
Removing Export
</H2>
</center>

<p>
Modify 2.12 [lex.key] paragraph 1 as follows:

<BLOCKQUOTE>
The identifiers shown in Table 3 are reserved for use as keywords
(that is, they are unconditionally treated as keywords in phase 7)
except in an <em>attribute-token</em> (7.6.1)
<ins><em>[Note:</em> The <tt>export</tt> keyword is unused but is reserved for
future use<em>]</em>:
</ins>
</BLOCKQUOTE>

<p>
Drafting note: There is some interest in retaining <tt>export</tt> as
a keyword for later use with modules.  If the committee does not want
to go in that direction, the <tt>export</tt> keyword would be removed
from the keyword table.

<p>
Modify 14 [temp] paragraph 1 as follows:

<BLOCKQUOTE>
<em>
template-declaration:
</em>
<br>
<del><tt>export</tt><sub>opt</sub></del>
<tt>template</tt> < <em>template-parameter-list</em> > <em>declaration</em>
</BLOCKQUOTE>

<p>
Remove 14.1 [temp.export].

<p>
Remove 14.6.5 [temp.class.spec] paragraph 2:

<BLOCKQUOTE>
When a partial specialization is used within the instantiation of an
exported template, and the unspecialized template name is
non-dependent in the exported template, a declaration of the partial
specialization shall be declared before the definition of the exported
template, in the translation unit containing that definition.  A
similar restriction applies to explicit specialization; see 14.8.
</BLOCKQUOTE>

<p>
Modify 14.8.2 [temp.explicit] paragraph 4 as follows:

<BLOCKQUOTE>
Otherwise, for an explicit instantiation definition the definition of
a <del>non-exported</del> function template, a <del>non-exported</del>
member function template, or a <del>non-exported</del> member function
or static data member of a class template shall be present in every
translation unit in which it is explicitly instantiated.
</BLOCKQUOTE>

<p>
Remove 14.8.3 [temp.spec.expl] paragraph 8 and the example that follows it:

<BLOCKQUOTE>
When a specialization for which an explicit specialization exists is
used within the instantiation of an exported template, and the
unspecialized template name is non-dependent in the exported template,
a declaration of the explicit specialization shall be declared before
the definition of the exported template, in the translation unit
containing that definition.
</BLOCKQUOTE>

<BLOCKQUOTE>
</BLOCKQUOTE>

<BLOCKQUOTE>
</BLOCKQUOTE>

<h3>End of document.</h3>

</body>
</html>



