У меня есть следующая проблема:класс экземпляра в вложенных классов
template< typename T, size_t N, size_t... N_i >
struct A
{
// nested class
template< typename... Ts >
class B
{
//...
A<T, N_i...>::B<Ts...> operator[](size_t i)
{
A< T, N_i...>::B<Ts...> res{ /* ... */ };
return res;
}
// ...
};
};
К сожалению, компилятор дает ошибку для «A < T, N_i...>::B <Ts...> res{ /* ... */ };
». Кто-нибудь знает, как я могу вернуть экземпляр class B
(который отличается в аргументах шаблона его внешнего class A
) в функции «operator[]
» от class B
?
Большое спасибо заранее.
извините, но я не уверен, что понял; 'operator []' в вашем ответе возвращает что? 'A :: B ' или 'A :: B '? Если я правильно понимаю, OP запросит 'A :: B ' –
max66
еще раз: с «Помещение пространства имен до полного типа» вы имеете в виду «Помещение« typename »перед полным типом? – max66
@ max66 еще раз спасибо. – xaxxon