powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не собирается шаблон
8 сообщений из 8, страница 1 из 1
Не собирается шаблон
    #39231359
.NET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не собирается вот такое объявление класса?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
template <class T> class Test
{
public:
	typedef T* iterator;
	iterator func();
};

template <class T>
Test<T>::iterator Test<T>::func()
{
	Test<T>::iterator it;
	return it;
}



А если в определении функции заменить Test<T>::iterator на T*, то собирается.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
template <class T> class Test
{
public:
	typedef T* iterator;
	iterator func();
};

template <class T>
T* Test<T>::func()
{
	Test<T>::iterator it;
	return it;
}
...
Рейтинг: 0 / 0
Не собирается шаблон
    #39231384
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.NET,
Код: plaintext
1.
2.
3.
4.
5.
6.
template <class T>
typename Test<T>::iterator Test<T>::func()
{
	Test<T>::iterator it;
	return it;
}
...
Рейтинг: 0 / 0
Не собирается шаблон
    #39231385
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.NET, вообще компилятор пишет, что не так: warning C4346: 'Test<T>::iterator' : dependent name is not a type
prefix with 'typename' to indicate a type
...
Рейтинг: 0 / 0
Не собирается шаблон
    #39231400
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych.NET, вообще компилятор пишет, что не так: warning C4346: 'Test<T>::iterator' : dependent name is not a type prefix with 'typename' to indicate a type
Может у него пишет: warning C4346: 'Test<T>::iterator' : не собирается
)))
...
Рейтинг: 0 / 0
Не собирается шаблон
    #39231413
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyМожет у него пишет: warning C4346: 'Test<T>::iterator' : не собирается
)))может:), а может у него гнус, я так вообще не понимаю, что он там в ошибках пишет )))
...
Рейтинг: 0 / 0
Не собирается шаблон
    #39231519
.NET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovskyegorych.NET, вообще компилятор пишет, что не так: warning C4346: 'Test<T>::iterator' : dependent name is not a type prefix with 'typename' to indicate a type
Может у него пишет: warning C4346: 'Test<T>::iterator' : не собирается
)))

У меня VS 2013 Express пишет:
"warning C4346: Test<T>::iterator: зависимое имя не является типом"

То есть про 'typename' ни слова!
И вообще я в предупреждения не смотрел. Зачем мне предупреждения если у меня три ошибки.
Но сообщения об ошибках абсолютно не информативны.
...
Рейтинг: 0 / 0
Не собирается шаблон
    #39231523
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.NETИ вообще я в предупреждения не смотрел. Зачем мне предупреждения если у меня три ошибки.поставь себе крыжик, что надо относиться к предупреждениям, как к ошибкам.
...
Рейтинг: 0 / 0
Не собирается шаблон
    #39231749
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй использовать using вместо typedef, тогда (навеное) можно будет убрать typename
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не собирается шаблон
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]