Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Си++ template |
Автор: GrayCardinal 15.2.2007, 18:18 | ||
Как в template класса объявить функцию, принимающую любой другой тип (ну, навроде тоже temlate'а). Страуструпа не читал, пока методом индукции ![]()
Соответственно правильно записать anyFunction в хэйдере и в коде... Заранее спасибо... Олег. ЗЫ Простите великодушно наСишника за такие вопросы ![]() |
Автор: Sartorius 15.2.2007, 18:27 |
Если тип аргумента должен отличаться от T так и объяви еще один typename в template... PS http://valera.asf.ru/cpp/book/c16.shtml - там все подробно написано |
Автор: Xenon 15.2.2007, 18:28 | ||
? |
Автор: Oleg_Ci 15.2.2007, 18:54 | ||
Вчера такое замутил
|
Автор: Xenon 15.2.2007, 19:04 |
Отедльно в хедере и реализацие? Ну тогда не получится сделать функцию, которая принимает любой типа - тебе придется моделью явного воплощения определить какие-то конкретные типы - проще все в хедере сделать ![]() |
Автор: GrayCardinal 15.2.2007, 19:21 |
Xenon, Ага. А код ? Если не в хейдер, а вынести ? Извините, конечно... Доку почитаю... Только _не сейчас_ ![]() ![]() |
Автор: Xenon 15.2.2007, 19:34 |
GrayCardinal, Ну тогда придется либо явно воплощаться, либо использовать export, но это почти никем не поддерживается ... Поэтому рекомендуется объявлть и определять класс и его члены в одном модуле. ЗЫ. Если вынести код в том же модуле, то все будет нормально. К тому же Oleg_Ci уже привел пример ![]() |
Автор: nickless 15.2.2007, 19:37 |
Можно еще 2 хедера использовать, один для объявления всего, а другой для реализации шаблонов, компилятору без разницы, а файлы поменьше будут |
Автор: GrayCardinal 15.2.2007, 20:02 |
Xenon, Oleg_Ci, говоришь ? Ах, вот оно что ... угум (рука придерживающая веко отпадает, глазик закрывается... все спасибо, до завтра, парни ![]() |
Автор: Xenon 15.2.2007, 20:11 |
nickless, так это же будет разделенением на интерфейс и реализацию, а это 2 уже две единицы компиляции ? |
Автор: HappyLife 15.2.2007, 20:17 |
Для люблю типа, можешь еще заюзать, функцию принимающую много параметров. |
Автор: nickless 15.2.2007, 20:20 | ||
Xenon, нет, я имею ввиду типа этого:
Просто хедер на 2 части разделить, а то не люблю я хедеры на несколько сотен строк ![]() |
Автор: GrayCardinal 16.2.2007, 04:48 | ||
Тоже вариант ![]() Добавлено @ 04:50 PS. уберите нафиг шапки ! а то реклама редхета какая-то :-( |
Автор: V.A.KeRneL 16.2.2007, 12:39 |
Угу, точняк! ![]() |
Автор: GrayCardinal 16.2.2007, 13:51 |
V.A.KeRneL, Во-во ![]() ![]() |