[temp.param]
Изменить: Удалить export.
Обоснование: Нет консенсуса по реализации.
Влияние на исходную функцию:
действительное объявление C ++ 2003, содержащееся export в этом международном стандарте, неправильно сформировано.
[temp.arg]
Изменение: убраны требования к пробелам для прямоугольных скобок вложенного закрывающего шаблона.
Обоснование: считается постоянным, но незначительным раздражением. Псевдонимы шаблонов, представляющие типы, не относящиеся к классам, усугубят проблемы с пробелами.
Влияние на исходную функцию:
изменение семантики четко определенного выражения. Допустимое выражение C ++ 2003, содержащее правую угловую скобку («>»), за которой сразу следует другая правая угловая скобка, теперь можно рассматривать как закрывающие два шаблона. Например, следующий код действителен в C ++ 2003, потому что «>>» является оператором сдвига вправо, но недопустим в этом международном стандарте, поскольку «>>» закрывает два шаблона.
template <class T> struct X { }; template <int N> struct Y { }; X< Y< 1 >> 2 > > x;
[temp.dep.candidate]
Изменение: разрешить зависимые вызовы функций с внутренней связью.
Обоснование: чрезмерно ограничены, упрощают правила разрешения перегрузки.
Влияние на исходную функцию:
действующая программа на C ++ 2003 может получить результат, отличный от этого международного стандарта.