Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Есть map, которая в качестве ключа хранит название переменной, а в значении- саму переменную и необходимость вызывать для нее деструктор: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Хочется написать НЕ шаблонную функцию, которая возвращает значение по ключу (названию переменной): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Как такое сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 19:05 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Никак /thread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 21:04 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, Ты же понимаешь, что C++ не поддерживает разные типы возвращаемого значения в одной не-шаблонной функции, только если они не разделены if constexpr'ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 21:27 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, Тип значения поля Any становится известным только при работе программы. При компиляции типа никакого нет, поэтому даже с шаблонами ничего нельзя вывести тип возвращаемого значения. У вас 2 варианта: 1) указывать тип аргументом шаблона 2) возвращать any ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 22:26 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Ты советуешь ему микроскоп, а он еще молоток не освоил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 23:08 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Сравнение typeid, флаг необходимости вызова деструктора. Все это дичайший говнокод с непониманием базовых принципов языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 23:12 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Забыл написать, что map у меня заполняется во время конструирования и имеет спецификатор const. Количество типов данных ограничено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2018, 23:33 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 07:14 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyAlekseySQL, Тип значения поля Any становится известным только при работе программы. При компиляции типа никакого нет, поэтому даже с шаблонами ничего нельзя вывести тип возвращаемого значения. У вас 2 варианта: 1) указывать тип аргументом шаблона 2) возвращать any У меня было сделано по первому варианту, но оказалось, что при вызове деструктора объекта, который содержит вышеприведенные поле map + метод получения значения, деструкторы вложенных объектов не вызываются: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Поэтому появилась необходимость получать сами объекты и вызывать у них деструкторы. Это можно сделать сохранив в структуре дополнительное поле, характеризующее тип (и тупо перебирать с помощью if ... else if ...). Но так как уже есть функция получения значения из Any, то захотелось ее переделать, чтобы использовать в деструкторе. Похоже не получится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 08:14 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLПоэтому появилась необходимость получать сами объекты и вызывать у них деструкторы. Это можно сделать сохранив в структуре дополнительное поле, характеризующее тип (и тупо перебирать с помощью if ... else if ...). Но так как уже есть функция получения значения из Any, то захотелось ее переделать, чтобы использовать в деструкторе. Похоже не получится... Че- то я пока не проснулся: сам вчера написал кусок определения типа без всяких дополнительных полей в структуре (который потом решил внедрить в метод получения значения: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2018, 08:20 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Можно ещё написать Шаблонную функцию, которая возвращает параметр через входящую ссылку на возвращаемый параметр. Тогда вызывать её можно как Не шаблонную функцию. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 05:25 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
CEMb, Хм, практически так. Чуть поправил. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 09:42 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
вызов Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 09:43 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, что мешает перегрузить для sData операторы приведения типа? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 11:39 |
|
||
|
Как "вывести" возвращаемый тип функции?
|
|||
|---|---|---|---|
|
#18+
Siemargl, Хитро! :) Можно писать в одну строчку выражение. Ещё бы от второго параметра избавиться... может как-нибудь поиграться с оператором "=" или конструктором? Там же Код: plaintext 1. Это в общем случае: Код: plaintext 1. Как бы тут исхитриться и в конструкторе передать тип? Всех "проблем" это не решит, но жизнь упростит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2018, 12:19 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39646990&tid=2017857]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 153ms |

| 0 / 0 |
