[diff.cpp03.temp] # Annex C (informative) Compatibility [[diff]](./#diff) ## C.6 C++ and ISO C++ 2003 [[diff.cpp03]](diff.cpp03#temp) ### C.6.6 [[temp]](temp "13 Templates"): templates [diff.cpp03.temp] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L2369) **Affected subclause:** [[temp.param]](temp.param) **Change:** Repurpose export for modules ([[module]](module "10 Modules"), [[cpp.module]](cpp.module "15.5 Module directive"), [[cpp.import]](cpp.import "15.6 Header unit importation"))[.](#1.sentence-1) **Rationale:** No implementation consensus for the C++ 2003 meaning of export[.](#1.sentence-2) **Effect on original feature:** A valid C++ 2003 program containing export is ill-formed in this revision of C++[.](#1.sentence-3) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L2378) **Affected subclause:** [[temp.arg]](temp.arg) **Change:** Remove whitespace requirement for nested closing template right angle brackets[.](#2.sentence-1) **Rationale:** Considered a persistent but minor annoyance[.](#2.sentence-2) Template aliases representing non-class types would exacerbate whitespace issues[.](#2.sentence-3) **Effect on original feature:** Change to semantics of well-defined expression[.](#2.sentence-4) A valid C++ 2003 expression containing a right angle bracket (“>”) followed immediately by another right angle bracket may now be treated as closing two templates[.](#2.sentence-5) [*Example [1](#example-1)*: template struct X { };template struct Y { }; X< Y< 1 >> 2 > > x; This code is valid in C++ 2003 because “>>” is a right-shift operator, but invalid in this revision of C++ because “>>” closes two templates[.](#2.sentence-6) — *end example*] [3](#3) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L2400) **Affected subclause:** [[temp.dep.candidate]](temp.dep.candidate) **Change:** Allow dependent calls of functions with internal linkage[.](#3.sentence-1) **Rationale:** Overly constrained, simplify overload resolution rules[.](#3.sentence-2) **Effect on original feature:** A valid C++ 2003 program can get a different result in this revision of C++[.](#3.sentence-3)