Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
Вот хочу я, например, написать какую-то такую шаблонную функцию: Код: plaintext 1. 2. 3. 4. 5. 6. Функция принимает ноду дерева и должна создать и добавить к ней нового ребёнка. При этом, существует несколько типов нод, и какую именно нужно создать определяет вызывающий код и должен передать эту инфу в функцию. Для этого использую шаблон. Собственно вопрос, можно ли как-то задать ограничение на родительский класс параметра шаблона? Например, в джаве можно было бы написать что-то вроде <Node extends TreeNode> (правда, в джаве создавать ноду пришлось бы через одно место рефлексию, но это уже совсем другая история, лол), а в С++, я так понимаю, так нельзя и все косяки в содержимом функции обнаружатся, только когда кто-то её попытается вызвать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 17:59 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
Ржавый гвоздь, std::enable_if вместе с std::is_base_of ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 18:03 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
Должно быть как-то так Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 18:09 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
Ржавый гвоздьможно ли как-то задать ограничение на родительский класс параметра шаблона? Можно выкинуть напрочь шаблон и... всё, ограничение введётся автоматически при задании в качестве параметра этого самого родительского класса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 18:11 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovМожно выкинуть напрочь шаблон и... всё, ограничение введётся автоматически при задании в качестве параметра этого самого родительского класса. Как я понимаю, у него не фигурирует родительский класс в аргументах функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 18:13 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
NekZу него не фигурирует родительский класс в аргументах функции. А зря. Правильное наследование и полиморфизм - гораздо удобнее шаблонизации. По крайней мере - гораздо читабельнее. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 18:15 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА зря. Правильное наследование и полиморфизм - гораздо удобнее шаблонизации. По крайней мере - гораздо читабельнее. С этим нельзя спорить. Но порой возникают такие ситуации, когда без таких шаблонных непотребств не обойтись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 18:18 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
NekZКак я понимаю, у него не фигурирует родительский класс в аргументах функции. Ага, именно так. NekZДолжно быть как-то так Спасибо, то что надо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 18:41 |
|
||
|
Ограничение на параметры шаблонов
|
|||
|---|---|---|---|
|
#18+
Ржавый гвоздьNekZКак я понимаю, у него не фигурирует родительский класс в аргументах функции. Ага, именно так. NekZДолжно быть как-то так Спасибо, то что надо! Тебе придётся явно инстанциировать функцию с указанным классом Node. addNode<NodeType1>(currentNode, line); addNode<NodeType2>(currentNode, line); и так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 19:40 |
|
||
|
|

start [/forum/moderation_log.php?user_name=%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9007]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 989ms |
| total: | 1141ms |

| 0 / 0 |
