4 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 20
|
|
1 | |
Принимать в качестве аргумента шаблона только потомков определенного класса02.02.2014, 00:09. Показов 693. Ответов 5
Метки нет Все метки)
(
Доброго времени суток. Возможно ли каким-либо образом создать шаблонный класс, который в качестве аргумента шаблона будет принимать только потомков некоторого вполне определенного другого нешаблонного класса?
0
|
|
02.02.2014, 00:09 | |
Ответы с готовыми решениями:
5
Научить метод принимать в качестве аргумента объект своего класса и дочерних классов
Указатель на метод класса в качестве аргумента метода класса
|
02.02.2014, 00:32 | 2 | |||||
С ходу могу предложить только вариант, когда принимает только указанный класс, а при всех остальных выскакивает ошибка компиляции (сообщение о ней можно сделать достаточно внятным, но пока не будем об этом):
1
|
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,727
|
||||||
02.02.2014, 00:49 | 3 | |||||
1
|
4 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 20
|
|
02.02.2014, 03:04 [ТС] | 4 |
2 Гром: мне, к сожалению, нужно ровно наоборот - чтобы принимал потомков и только их (то есть не принимал даже сам базовый класс)
2 gray_fox: спасибо, нашел много полезных проверок в этом <type_traits>! Получается, средствами ядра языка это не реализовать? Без дополнительных включений и костылей типа попыток приведения указателей одного типа к другому (была у меня такая мысль)
0
|
02.02.2014, 10:18 | 5 |
Да нет, type_traits - во-первых, полноправная часть стандартной библиотеки, во-вторых - выдает значения времени компиляции, а не времени исполнения. Можете почитать Александреску, чтобы понять, как примерно это делается (там вообще очень много про метапрограммирование и получение результата на этапе компиляции).
1
|
4 / 0 / 0
Регистрация: 09.07.2013
Сообщений: 20
|
|
02.02.2014, 16:11 [ТС] | 6 |
Понял, спасибо
0
|
02.02.2014, 16:11 | |
Помогаю со студенческими работами здесь
6
Передача enum в качестве аргумента метода класса Передача метода класса в качестве аргумента внешней функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |