() tempiate const

Автор admin Суббота, 23 мая 2009 11:32

() tempiate const T& min(const T& a. const T& b) { return (a < b) ? a : b: } //: C05:UseMinl.cpp {0} #include #include “OurMin.h” void usemlnlO { std::cout « mind.2) « std::endl: } III:- II: C05:UseMin2.cpp {0} #1nclude <1ostream> #include “OurMin.h” void usemin2() { std::cout « min(3.1.4.2) « std::endl: } ///:- II: C05:MinMain.cpp 11{I) UseMinl UseMin2 Minlnstances void useminK); void usemin2(): 1nt mainO { useminK): usemin2(): } ///:- Если попытаться скомпоновать эту программу, компоновщик сообщит о неразрешенных внешних ссылках для min() и min(). Дело в том, что когда компилятор встречает вызовы специализаций min() в UseMinl и UseMin2, он видит только объявление min(). А раз определение недоступно, компилятор считает, что оно находится в другой единице трансляции, и не генерирует специализации в этой точке. Естественно, компоновщик жалуется на то, что специализации не найдены. Для решения проблемы мы создадим новый файл Minlnstances.срр, в котором явно объявляются необходимые специализации min(): //: С05:Minlnstances.срр {0} #1 nclude “OurMin.cpp” // Специализации


Комментарии закрыты.