Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » тонкости шаблонов с++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

CruxMortis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Гуру, помогайте...
Следующий кусок работает

Цитата:
 
class Class1{ public: static void Core(){ printf( "1\n" ); }; };
class Class2{ public: static void Core(){ printf( "2\n" ); }; };
 
template< class T > void Action()
{
T::Core();
}
 
int main(int argc, char* argv[])
{
Action< Class2 >();
return 0;
}
 

 
 
следующий - тоже работает

Цитата:
 
class Class1{ public: static void Core(){ printf( "1\n" ); }; };
class Class2{ public: static void Core(){ printf( "2\n" ); }; };
 
class C
{
public:
template< class T > void Action( T& t )
{
t.Core();
}
};
 
int main(int argc, char* argv[])
{
C c;
Class1 cl;
c.Action( cl );
return 0;
}
 

 
а следующий - нет
 

Цитата:
 
class Class1{ public: static void Core(){ printf( "1\n" ); }; };
class Class2{ public: static void Core(){ printf( "2\n" ); }; };
 
class C
{
public:
template< class T > void Action()
{
T::Core();
}
};
 
int main(int argc, char* argv[])
{
C c;
c.Action< Class2 >();
return 0;
}
 

 
'Class2' : illegal use of this type as an expression
 
В чем тонкость? Спасибо.

Всего записей: 24 | Зарегистр. 28-01-2003 | Отправлено: 13:17 11-11-2004
vndovr

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В компиляторе.
Ты чем компилируешь? В GCC / BCC 5.6 нет никаких ошибок

Всего записей: 359 | Зарегистр. 05-02-2004 | Отправлено: 13:48 11-11-2004
CruxMortis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VC60

Всего записей: 24 | Зарегистр. 28-01-2003 | Отправлено: 13:51 11-11-2004
WiseAlex



Софтовых дел М...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в VC7.1 тоже нормально - проблема, насколько я знаю в VC6 - он не позволяет делать шаблоны внутрии классов (или что-то в этом роде). короче VC6 с шаблонами не дружит - бери или VC7.1 или подключай компилятор от Intel

Всего записей: 1001 | Зарегистр. 02-03-2003 | Отправлено: 14:52 11-11-2004
CruxMortis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо

Всего записей: 24 | Зарегистр. 28-01-2003 | Отправлено: 15:00 11-11-2004
CruxMortis

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
действительно в семерке такой проблемы нету...

Всего записей: 24 | Зарегистр. 28-01-2003 | Отправлено: 16:12 12-11-2004
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » тонкости шаблонов с++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru