|
Заблокирован
|
|||||||||||
шаблонные методы шаблона. Специализация.07.02.2012, 11:31. Показов 6526. Ответов 5
Метки нет (Все метки)
Вопрос: каким образом можно вынести реализацию методов класса за его пределы?
Изначально вопрос формулировался так: Каким образом можно произвести специализацию одного из методов шаблона класса так, что бы эта специализация зависела только от одного (или нескольких) параметров шаблона, но не от всех? Другими словами, как можно частично специализировать отдельно взятый метод шаблона так, что бы при этом не пришлось частично специализировать весь класс целиком. Однако, ответ на этот вопрос был найден. Ниже представленный код этот момент иллюстрирует:
Но я не люблю, когда у меня декларативная часть класса захламляется реализациями методов. Вопрос: каким образом можно вынести реализацию методов класса за его пределы? Вообще, всегда думал, что правильно - сначала пишется шапка класса-владельца, потом пишется шапка шаблонного метода. Использовал такой способ:
0
|
|||||||||||
| 07.02.2012, 11:31 | |
|
Ответы с готовыми решениями:
5
Msvc2015 специализация шаблона для массива нулевого размера
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 07.02.2012, 12:39 | ||||||
|
Bers, Вышепреведенный код у меня тупо не компилируется.
Добавлено через 29 секунд http://liveworkspace.org/code/... ac42de4760 Добавлено через 8 минут Пока смог выродить только такое (=
Собственно создается впечатление, что такое вытворить можно только специализируя полностью и класс и функцию.
0
|
||||||
|
Заблокирован
|
||||||
| 07.02.2012, 12:39 [ТС] | ||||||
|
Я компилировал в 2008 студии.
На самом деле я уже нашёл приемлемое решение проблемы. Но все равно интересно - почему, если студия позволяет специализировать шаблонный мембер внутри класса, она никак не хочет делать этого снаружи? Или может быть я просто не знаю, как правильно... Ну а что касается gcc (онлайн компилятор же он? ) то... надо полагать, либо он не очень хорошо соотносится со стандартом, либо студия в этом отношении, лучше выполняет стандарт (или наоборот, в очередной раз забила болт). Как на самом деле я понятия не имею... Хотелось бы конечно пролить свет на эту ситуацию. Если интересно - ниже представленный код, хоть и является суть "обходной путь", но так же имитирует "частичную специализацию мембера"
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||
| 07.02.2012, 13:24 | |||
Добавлено через 11 минут На тему поддержки стандарта. gcc все делает верно. А вот MSVC не поддерживает данный пункт.
1
|
|||
|
Заблокирован
|
|
| 07.02.2012, 14:02 [ТС] | |
|
как вы так быстро находите в стандарте интересующие пункты?
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 07.02.2012, 14:32 | |
|
Bers, Вбил в поиске по документу template specialization... Открылся пункт 14.2... Ну и сидел читал, ибо было интересно, в этот пункт стандарта я не заглядывал подробно. Жестко конечно, но интересно.
1
|
|
| 07.02.2012, 14:32 | |
|
Помогаю со студенческими работами здесь
6
Специализация шаблона Специализация шаблона специализация шаблона Специализация шаблона специализация шаблона Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|