Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
802 / 529 / 157
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
1

Можно ли разбивать определение шаблона класса на несколько файлов?

07.08.2015, 10:38. Показов 1055. Ответов 9
Метки нет (Все метки)

Можно ли написать в хедере определение класса с прототипами методов, а реализацию методов в отдельном файле?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2015, 10:38
Ответы с готовыми решениями:

Определение метода-шаблона за пределами шаблона класса
День добрый! Разбираюсь в шаблонах, решил копнуть поглубже. Вот пример: template <typename T1>...

Можно ли с помощью класса QDir (или другого) выбрать несколько файлов из директории?
Здравствуйте! Подскажите, пожалуйста, можно ли с помощью класса QDir, или другого, выбрать...

Определение функции за пределами шаблона класса
не могу определить функцию за пределами класса, не компилится подсобите советом template<...

Определение чистой виртуальной функции класса-шаблона
Есть класс Comparable<T>: template<typename T> class Comparable : virtual public Object {...

9
3250 / 2052 / 351
Регистрация: 24.11.2012
Сообщений: 4,903
07.08.2015, 10:54 2
Можно, но в этом случае файл с реализацией должен быть включен в заголовочный файл — на этапе инстанцирования шаблона должно быть доступно определение.

И уже не в первый раз: что мешает написать код и попробовать проверить самому?
0
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
07.08.2015, 11:01 3
Ferrari F1, можно, но перед реализацией в cpp файле нужно инстанциировать шаблоны для типов:
C++
1
2
3
4
5
//someclass.cpp
template Some<int>;
template Some<char>;
template Some<float>;
...   // далее для всех нужных типов
Есть еще ключевое слово export для определений функций, но практически ни один компилятор его не поддерживает
0
2546 / 1205 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
07.08.2015, 11:01 4
Цитата Сообщение от 0x10 Посмотреть сообщение
на этапе инстанцирования шаблона
Это что? Что-то наподобие распарсивания шаблона компилятором для построения кода?
0
Эксперт по математике/физикеЭксперт С++
1949 / 1286 / 371
Регистрация: 16.05.2013
Сообщений: 3,347
Записей в блоге: 6
07.08.2015, 11:01 5
Вопрос в догонку. Кто-нибудь сталкиваося с поддержкой экспорта шаблонов? Какой компилятор их поддерживает и вообще есть ли такие? У Вандервуда есть упоминание об этом, а как обстоят дела на данный момент?
0
Don't worry, be happy
17268 / 10140 / 1963
Регистрация: 27.09.2012
Сообщений: 25,367
Записей в блоге: 1
07.08.2015, 11:04 6
Цитата Сообщение от Ilot Посмотреть сообщение
а как обстоят дела на данный момент?
на данный момент экспорт - deprecated

Добавлено через 55 секунд
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Можно ли написать в хедере определение класса с прототипами методов, а реализацию методов в отдельном файле?
например, можно инстанцировать необходимые специализации в отдельном cpp
1
3250 / 2052 / 351
Регистрация: 24.11.2012
Сообщений: 4,903
07.08.2015, 11:07 7
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Это что? Что-то наподобие распарсивания шаблона компилятором для построения кода?
Собственно, сама генерация кода с конкретными параметрами.
1
117 / 121 / 42
Регистрация: 25.08.2012
Сообщений: 1,294
07.08.2015, 11:07 8
Ilot, у ребят из EDG он поддерживался, впрочем, потом они отказались от идеи экспорта
0
15358 / 8305 / 2015
Регистрация: 30.01.2014
Сообщений: 14,180
07.08.2015, 12:24 9
Цитата Сообщение от Ilot Посмотреть сообщение
Какой компилятор их поддерживает и вообще есть ли такие?
http://comeaucomputing.com/
Core C++03 language enhancements for all major and minor features of C++ and C, including export
1
1402 / 644 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
07.08.2015, 12:55 10
http://www.bogotobogo.com/cplu... n_file.php
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2015, 12:55

Насколько целесообразно разбивать программу на несколько функций?
Такой вот вопрос. Допустим, программу можно разбить на отдельные функции. С одной стороны это...

Аргументы шаблона по умолчанию можно использовать только в шаблоне класса
Помогите разобраться. В чем проблема. VS 2012, Код был написан под VS 2015. В 15 студии...

Error C4519: аргументы шаблона по умолчанию можно использовать только в шаблоне класса
void sort_when_two_threads(Iterator first, Iterator last, Compare comp = std::less&lt;typename...

Как использовать несколько файлов в рамках одного класса
Здравствуйте! Вот такой вопрос. В существующем проекте можно ли создать отдельный файл (файлы)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru