|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
||||||||||||||||
Шаблонная функция в отдельном cpp25.02.2020, 20:04. Показов 4581. Ответов 5
Метки нет (Все метки)
Здравствуйте,
Подскажите пожалуйста, вот когда обьявляю шаблонную функцию внутри main.cpp:
Есть какие то правила обеления шаблонной функции в отдельных файлах относительно обычных функций ?
0
|
||||||||||||||||
| 25.02.2020, 20:04 | |
|
Ответы с готовыми решениями:
5
|
|
381 / 324 / 65
Регистрация: 14.10.2014
Сообщений: 1,377
|
|
| 25.02.2020, 20:11 | |
Сообщение было отмечено Optimus11 как решение
Решение
Optimus11, шаблонная функция должна быть полностью в .h файле. Их не надо разделать на объявление в (.h файле) и определение (в .cpp файле).
Добавлено через 3 минуты или же можно использовать только в конкретном .cpp файле, если нужна "локальная" шаблонная функция. Но она за пределами этого файла, естественно, видна не будет. Для примера - шаблоны STL целиком и полностью состоят из заголовочных файлов, поэтому они доступны для просмотра.
1
|
|
|
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
|
|
| 25.02.2020, 20:46 [ТС] | |
|
Спасибо!
Но почему так ? Почему определение обычной функцию в .h файле определить нельзя, а шаблонной можно ?
0
|
|
|
199 / 155 / 45
Регистрация: 11.11.2019
Сообщений: 348
|
|
| 25.02.2020, 20:50 | |
|
Чуть подробнее: http://www.cyberforum.ru/cpp-b... 84270.html
1
|
|
|
381 / 324 / 65
Регистрация: 14.10.2014
Сообщений: 1,377
|
||
| 25.02.2020, 21:14 | ||
|
Поскольку подстановка шаблона происходит на этапе компиляции - текст всего шаблона (как объявление так и определение) должен быть доступен на стадии компиляции. С обычными функциями - можно откомпилировать отдельно вызовы функций, а потом на стадии линковки "подключатся их определения". Как то так Обычную функцию тоже можно целиком отправить в .h файл. Например функции объявленные и определённые прям в теле класса в заголовочном файле - по умолчанию inline (встроенные). "Встроит" их компилятор или нет - это уже другой вопрос. Все решает "архитектура" приложения.
1
|
||
|
Неэпический
|
|
| 25.02.2020, 21:28 | |
|
1
|
|
| 25.02.2020, 21:28 | |
|
Помогаю со студенческими работами здесь
6
Сделать недоступной функцию в отдельном .cpp модуле Описание функции шаблонного класса библиотеки в отдельном cpp-файле Шаблонная функция шаблонная функция С++ Шаблонная функция Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|