Ключевое слово typename
запрещено для неквалифицированных имен (которым не предшествует ::
), даже если они зависимы.
C ++ 03 [Раздел 14.6/5
] говорит
Ключевое слово typename должно применяться только к квалифицированным именам , но эти имена не должны зависеть.
pt
зависит от T, но это не имеет значения (в этом контексте).
Удалите typename
, чтобы ваш код компилировался.