Highcore
|
||||||
1 | ||||||
Постопределение возвращаемого функцией типа12.04.2014, 20:41. Показов 1492. Ответов 3
Метки нет (Все метки)
Суть проблемы: есть метод без аргументов, который в зависимости от флага должен возвращать либо тип T1, либо тип T2. Собственно, реализуемо ли такое? Если да - то как?
Пытался сделать так:
|
12.04.2014, 20:41 | |
Ответы с готовыми решениями:
3
Назначение возвращаемого значения функцией По ссылке на функцию получить тип возвращаемого этой функцией значения Может ли третий проверка возвращаемого функцией значения влиять на результат линковки? Оператор без типа возвращаемого значения |
12.04.2014, 20:58 | 2 |
Вот тут нюансы работы с decltype, может поможет разобраться: pdf
Добавлено через 1 минуту А вот тут: decltype с тернарным оператором я чем то подобным тоже интересовался.
0
|
18840 / 9839 / 2408
Регистрация: 30.01.2014
Сообщений: 17,280
|
|
12.04.2014, 23:42 | 3 |
Сообщение было отмечено как решение
Решение
Значение возвращаемое вычисляется на этапе компиляции (не важно через decltype или еще как). А твой флаг - это этап исполнения. То есть либо флаг должен быть константой времени компиляции, либо нужно использовать какой-нибудь вариантный тип. Типа boost::variant или boost::any.
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
13.04.2014, 11:59 | 4 |
Если типы связаны единой иерархией, то можно задать возвращаемый тип указателем (ссылкой) на базовый класс и в зависимости от условий возвращать разные объекты. См. паттерн "виртуальный конструктор" например.
0
|
13.04.2014, 11:59 | |
13.04.2014, 11:59 | |
Помогаю со студенческими работами здесь
4
Получение типа возвращаемого методом значения Как проблему возвращаемого типа в функции Определение типа возвращаемого значения лямбда-выражения Decltype при определении возвращаемого типа в перегруженных операторах шаблонного класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |