| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Возвращаемое значение функции - шаблон... |
| Автор: Fedor 12.12.2005, 21:10 | ||
Проблема такая: функция Minor возвращает объект с размерами соответствующих размеров меньше НА кол-во элементов векторов v1 и v2 соответственно. Насколько я понимаю, подоное не прокатит на этапе выполнения. Как можно решить эту проблему. Может, в тупую точно нельзя, тогда как посоветуете решить в обход? Спс. |
| Автор: nikitao 12.12.2005, 21:33 |
| Fedor,pls,переформулируй задачи ф-ции ,а то так ничего не ясно(мне). |
| Автор: Fedor 12.12.2005, 21:57 |
| Функция находит минор матрицы. Минор - это "вычеркивание" некоторых столбцов и некоторых рядков. Вот та матрица, что остается - и есть минор. Список стоблцов - в векторе v1, список рядков - в векторе v2 Функция возвращает матрицу, образованную вычеркиванием из матрицы (объекта this) столбцов из v1 и рядков из v2. Т.е. в возвращаемой матрице будет (Width - v1.count) столбцов и (Height - v2.count) рядков. Но ведь в заголовке функции нужно сразу указать параметры шаблона? Вот вопрос: как можно это сделать? З.Ы. Надеюсь, понятно оьъяснил? |
| Автор: Void 12.12.2005, 22:06 | ||||
Есть только один вариант - сделать ф-цию-член Minor шаблонной с двумя параметрами - числом вычеркиываемых столбцов и строк:
Единственное, чего я не могу понять - зачем вообще могли понадобиться матрицы с жестко заданной в compile-time размерностью? |
| Автор: Fedor 12.12.2005, 22:12 | ||||
Я тоже этого не могу понять, но с ТЗ не поспоришь.
Спасибо за помощь. Я думаю, мне это подходит. Ибо мне нужно написать только хедеры, а реализация будут делать уже другие. |
| Автор: DeadSoul 12.12.2005, 22:51 |
| Void, такое template <long ColsCount, long RowsCount> CMatrix<T, Width - ColsCount, Height - RowsCount> Minor( std::vector<long>& v1, std::vector<long>& v2); сделать НЕЛЬЗЯ. У тебя две инсталяции данного шаблона будут отличатся только типом возвращаемого значения |
| Автор: Void 12.12.2005, 23:05 |
| DeadSoul Ну да. И чем нам это мешает? Comeau принимает на ура. |