Вы, вероятно, компилируете в нестрогом режиме в icc. В любом случае, поскольку x
является неквалифицированным, его нельзя искать ни в каких базовых классах, которые зависят от параметров шаблона. Таким образом, в вашем коде нет места, где x
найден, и ваш код недействителен.
Другие имена ищутся с использованием другой формы поиска (поиск доступа к членам класса и квалифицированный поиск). Обе эти формы будут искать зависимые базовые классы, если они могут (то есть, если они являются зависимыми, и, таким образом, ищутся при создании экземпляра шаблона, когда известен dtype
- все остальные ваши имена зависят от параметров шаблона).
Даже GCC в своих последних версиях не реализует это правильно, и некоторые зависимые имена по-прежнему сопоставляются с зависимыми базами во время неквалифицированного поиска.