шаблоны
От: Lorenzo_LAMAS  
Дата: 22.09.03 12:59
Оценка:
Есть
//file1.cpp
template<class T>void fun(T)//только объявление
int main()
{
   fun(10);

   return 0;
}
//file2.cpp
template<class T>
void fun(T)
{

}

void g()
{
    fun(10);
}


Является ли эта программа правильной?
Стандарт говорит, что если я неявно/явно инстанцирую функцию шаблон, я должен видеть определение (если этот шаблон не инстанцирован где-то явно). Вроде как под такое определение данная ситуация не подходит — определения не видно, явного инстанцирования нет. BCC5.6 VC6.0 7.0 нормально компилируют-компонуют. Где же правда?
Of course, the code must be complete enough to compile and link.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.