63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
Не могу разделить template метод в .h и .cpp файлы09.08.2016, 19:19. Показов 5206. Ответов 8
Метки нет Все метки)
(
Писал для проверки мини прогу, там все работает:
class.h
header:
Что за фигня?
0
|
|
09.08.2016, 19:19 | |
Ответы с готовыми решениями:
8
template .h .cpp
Не могу исправить ошибку :113 H:\Dev-Cpp\Проекты\уроки\Безымянный3.cpp cannot convert `IDirectDraw7**' to `IDirectDraw**' for argument `2' to `HRESULT DirectDrawCreate(GUID*, IDirectDraw**, IUnknown*) |
43 / 43 / 20
Регистрация: 08.12.2010
Сообщений: 342
|
|
09.08.2016, 19:50 | 2 |
Описание ошибки радует =) Поподробнее где вышла? Какая строчка? Проект нам самим собирать?
0
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
09.08.2016, 20:58 | 3 |
я так понимаю вы пытаетесь создать функцию, которая принимает переменное количество параметров
и вы где-то не поставили запятую, предположительно тут: Добавлено через 35 секунд означает, что перед ... отсутствует , предлагаю вам перебрать, перед каким ... Добавлено через 21 секунду но программа от этого не заработает
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
09.08.2016, 20:59 | 4 |
maxm, никак. Это слабое место компиляторов в 21 веке
1
|
![]() 8725 / 4305 / 958
Регистрация: 15.11.2014
Сообщений: 9,752
|
|
09.08.2016, 22:28 | 5 |
жизнь - боль и унижение.
добро пожаловать в реальный мир. Кликните здесь для просмотра всего текста
шаблонно-код не разделяется на h/cpp.
технология настолько сложная, что мейнстрим тупо не осилил.
2
|
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
|
|
10.08.2016, 10:52 | 6 |
0
|
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
|
|
10.08.2016, 11:30 [ТС] | 7 |
Вряд ли Вы соберете столь большой обьем кода с тучей авторских либ, которые я и так не имею права распространять
![]() Я как бы понимаю английский, спасибо. ![]() Вот если так посмотреть, то там он еще специализирует шаблоны, стараясь это обойти. Но тут это будет не вариант. Но почему тогда мой proof-of-concept на три файла компилится и работает успешно? Добавлено через 5 минут Даже если определить шаблон в .h файле, будет та же ошибка. Беда в том, что либа будет прикручена к проекту с конфигом Visual Studio 2010 (v100). Если поставить Visual Studio 2015 (v140), все летает и в одном файле, и если разделить. Вот такая фигня будет. Так что тут вы не правы пожалуй. VS 2015 компилит, и работает.
0
|
17419 / 9252 / 2263
Регистрация: 30.01.2014
Сообщений: 16,199
|
|
10.08.2016, 12:02 | 8 |
Так в 2010 студии variadic templates не поддерживаются.
Ну естественно оно там летает, т.к. ты инклудишь cpp с реализацией. Коль хочешь так разделить, то файлик с реализацией назови каким-нибудь расширением *.inl или *.tcc и включай его. Добавлено через 1 минуту Причина того, что шаблон при разделении "не работает" не в самом разделении, а в том, как оно начинает влиять на код при появлении нескольких единиц трансляции, в которых не хватает определения шаблона. Если отделенное определение всегда включать довеском в этот же заголовочный файл, то такая ситуация не произойдет просто напросто. Только это не должен быть файл cpp, т.к. он обычно используется как компилируемая единица, что внесет путаницу и чревато ошибками в будущем.
4
|
1180 / 893 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|||||||||||
10.08.2016, 12:09 | 9 | ||||||||||
Причем включать лучше в сам заголовок, в конце файла, а не в каждой единице трансляции включать заголовок+реализацию.
Добавлено через 1 минуту
2
|
10.08.2016, 12:09 | |
Помогаю со студенческими работами здесь
9
Заголовочные файлы и файлы cpp Метод класса возвращает template type Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |