Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема вызова шаблонный метода

353
02 февраля 2008 года
Nixus
840 / / 04.01.2007
Допустим у меня имеется класс

Код:
class CClass1
{
       // ...

       template<class T> void Func()
       {
              printf("sizeof(T)=%i\n", sizeof(T));
       }

       // ...
};


При попытке вызова метода Func

 
Код:
main()
{
       CClass1 C;
       C.Func<int>();
}


MSVC++ 6.0 ругается на неверное использование типа int. GCC нормально компилирует. В связи с чем возник вопрос: так ведут себя все C++ компиляторы от Microsoft или это издержки только 6-ой версии, и вообще стоит ли использовать подобные шаблонные методы, для инстанциалиации которых требуется явно указывать тип?
320
02 февраля 2008 года
m_Valery
1.0K / / 08.01.2007
Код:
class CClass1
{
       // ...
public:
       template<class T>  void Func()
       {
              printf("sizeof(T)=%i\n", sizeof(T));
           
       }

       // ...
};

 void main()
{
       CClass1 C;
       C.Func<int>();
}

Такой код в 2003 и 2005 Студиях нормально работает.Посмотри номер ошибки в окне Output,установи на номер курсор и вызови справку F1.Чего там написано ? У меня просто 6-ой студии нет под рукой.
3
02 февраля 2008 года
Green
4.8K / / 20.01.2000
Возможно, это баг шестой студии. Подобное обсуждалось:
http://forum.codenet.ru/showthread.php?t=5001
в 2003 году :)
505
02 февраля 2008 года
vAC
343 / / 28.02.2006
Насколько я помню, 6-я студия не отвечает требованиям стандарта ISO-IEC 14882-1998, отсюда и всякие нестыковки. По-моему в ней еще нет поддержки вложенных шаблонов...
353
02 февраля 2008 года
Nixus
840 / / 04.01.2007
Спасибо всем ответившим.
Понял, что нужно менять VS6.0 на что-нить поновее. :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог