Наследование базового класса с рекурсивным классом шаблонов [duplicate]

Я обновил 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'

    }
}
2
задан Daniel 4 September 2015 в 13:52
поделиться

2 ответа

arr теперь является зависимым именем. Это зависит от T. Что, если есть T, для которого Base<T> специализирован, чтобы не иметь arr? В частности, из [temp.dep]:

В определении шаблона класса или класса область зависимого базового класса (14.6.2.1) не рассматривается при неквалифицированном поиске имени либо в точка определения шаблона класса или члена или во время создания шаблона или члена класса.

Base<T> - зависимый базовый класс - он зависит от параметра шаблона T , поэтому его область не рассматривается во время поиска unqualified . Для этого нужно использовать квалифицированный поиск . То есть либо имя класса:

parr = &Base<T>::arr[0];

, либо просто с помощью this:

parr = &this->arr[0];
6
ответ дан Barry 24 August 2018 в 02:14
поделиться
1
ответ дан Bo Persson 24 August 2018 в 02:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: