![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| nerezus |
|
||||||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
У меня используется в коде:
Оно описано в common.h
и реализовано в common.cpp
В чем ошибка? Это сообщение отредактировал(а) nerezus - 25.6.2008, 14:47 |
||||||||
|
|||||||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Fazil6, а как надо?
Откуда такое требование и как его обойти? Естественно я его из разных файлов вызываю, поэтому заголовок и выделил в отдельный, чтобы ошибки не было, что одинаковые ф-ии объявлены. |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
Вот на следующей странице этого раздела (используем поиск):
http://forum.vingrad.ru/forum/topic-214819.html |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
круто) fixed, but...
Если не ошибаюсь, это одна из ошибок именно компилятора, а не прописанная в стандарте фича? |
|||
|
||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Именно что прописанная. Чтобы можно было разделять объявление и реализацию шаблонов был придуман механизм extern template. Но большинство компиляторов его не поддерживают. Хотя, в любом случае, твой код без изменений компилироваться бы не стал. |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
bsa, а как его заюзать? )
VS, моследняя версия. Так сказать мейнстрим под винду. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
То что мейнстрим, еще ничего не значит. Она даже стандарт C99 не поддерживает. Кто-то сказал, что данную возможность поддерживает компилятор от Sun. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Данную возможность поддерживает Comeau
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Очень хорошо. И цена хорошая. Вот только есть одна проблема - платить никто ее не захочет. А бесплатно попробовать нельзя (online неполноценнен, так как тот же буст даже не собрать). |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Да нафиг это нужно? Если бы у тебя был какой-нить мегапроект на миллион строк... Уж как-то люди обходятся и даже по этому поводу не парятся и нормальные кроскомпилерные библотеки пишут.
Конечную реализацию можно отделять в отдельный файл, но не всегда можно так код выстроить. В том примере, что ты привёл, вообще смешно про это говорить. А чтобы ошибки не было, достаточно весь хедер занести в #ifndef #endif -блок. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
bsa, не спорю
Не скажи... Я вот очень был бы рад. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Это, думаю, сильно ускорит компиляцию. Когда у тебя, допустим, STL и тот же boost активно используются в программе, то скорость компиляции одного файла довольно низкая. Ситуацию спасает прекомпиляция заголовочных файлов, но ее еще надо настраивать в проекте, причем automake, например, на данный момент этого сделать легко не позволяет. |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Поддерживаю. От export-а больше проблем, чем пользы. Добавлено @ 16:38 А возможно, что и, наоборот, затормозит её. Ведь исходные файлы с экспортируемыми шаблонами становятся зависимы друг от друга (а не только от заголовочных файлов). Это сообщение отредактировал(а) UnrealMan - 26.6.2008, 16:42 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Имеешь опыт использования? |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Это ты зря, подобный опыт в любом случае бывает полезным. |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Ну, это как посмотреть. Неудачные проектные решения однажды стоили мне работы из-за провала сроков, и полезного в этом я вижу мало. Из этого опыта я для себя сделал вывод: лучше не пытаться воспользоваться сомнительными методами - это может выйти боком. Экспорт шаблонов - весьма сомнительная штука (проблемы экспорта шаблонов затрагиваются в Новых сложных задачах Саттера), и я бы воздержался от его использования. Это сообщение отредактировал(а) UnrealMan - 26.6.2008, 23:16 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 60 Всего: 223 |
Это точно |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
О. Вот это уже хорошая и полезная информация. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Раз уж так пошло - а почему интеловый компилер забыли. Тем более, что есть бесплатная редакция под линь. Он поддерживает экспорт. Серёзно не использовал (ибо терять совместимость и с гцц, и с msvc - не особо хочется) - особой статистики не дам. Хотя можно попробовать
|
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
Хех, я когда возможно делаю это во время исполнения(ООП ибо. Наследование от общего класса, (un)boxing), но просто приходится использовать стандартные классы/типы, у которых нет общего предка.
Мне это жутко не нравится, но приходится самому делать шаблоны. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |