Я обновил com.google.gms: google-services от 3.2.0 до 3.2.1, и предупреждение перестало появляться.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'com.google.gms:google-services:3.2.1'
}
}
arr
теперь является зависимым именем. Это зависит от T
. Что, если есть T
, для которого Base<T>
специализирован, чтобы не иметь arr
? В частности, из [temp.dep]:
В определении шаблона класса или класса область зависимого базового класса (14.6.2.1) не рассматривается при неквалифицированном поиске имени либо в точка определения шаблона класса или члена или во время создания шаблона или члена класса.
blockquote>
Base<T>
- зависимый базовый класс - он зависит от параметра шаблонаT
, поэтому его область не рассматривается во время поиска unqualified . Для этого нужно использовать квалифицированный поиск . То есть либо имя класса:parr = &Base<T>::arr[0];
, либо просто с помощью
this
:parr = &this->arr[0];