Мое текущее предположение состоит в том, что в IBM xlC и Sun CC есть ошибки.
Версии, которые выдают ошибки, вероятно, путают с использованием typename
в контексте аргумента шаблона, но используются для указания того, что зависимое имя является типом вместо введения аргумента типа. Обратите внимание, что эти компиляторы не соответствуют и не требуют typename
, чтобы указать, что зависимое имя является типом, даже в других контекстах, где это необходимо (даже для версий Sun CC, где компилируется ваш код).