List<String> strings=new ArrayList<String>(){};
while(strings.size() > 0) {
String str = strings.remove(0);
}
Во второй версии booboo
является зависимым именем , поэтому оно не отображается автоматически в шаблоне. Вы можете либо добавить using typename base<T>::booboo;
к производному классу, либо использовать ваше решение typedef, либо сказать typename base<T>::booboo bb = T(1);
.
booboo
, или, возможно, определяютbooboo
как функцию или что-то еще. поэтому компилятору нужно сказать, что подразумевается в имени: что он исходит из базового класса и что он является типом. – Cheers and hth. - Alf 6 March 2013 в 02:47::
, если левое является специализированным шаблоном. – Kerrek SB 6 March 2013 в 03:02template
для имен шаблонов,typename
для имен типов и ничего для имен, подобных значениям. – Kerrek SB 6 March 2013 в 11:04