Modify 2.12 [lex.key] paragraph 1 as follows:
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 attribute-token (7.6.1) [Note: The export keyword is unused but is reserved for future use]:
Drafting note: There is some interest in retaining export as a keyword for later use with modules. If the committee does not want to go in that direction, the export keyword would be removed from the keyword table.
Modify 14 [temp] paragraph 1 as follows:
template-declaration:
exportopttemplate < template-parameter-list > declaration
Remove 14.1 [temp.export].
Remove 14.6.5 [temp.class.spec] paragraph 2:
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.
Modify 14.8.2 [temp.explicit] paragraph 4 as follows:
Otherwise, for an explicit instantiation definition the definition of anon-exportedfunction template, anon-exportedmember function template, or anon-exportedmember function or static data member of a class template shall be present in every translation unit in which it is explicitly instantiated.
Remove 14.8.3 [temp.spec.expl] paragraph 8 and the example that follows it:
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.