170 похожих чатов

Если я хочу по строке вызывать определенный конструктор, это надо

делать map из строки в std::function ?
или можно как-то сделать map из строки в type_info и вызывать потом по типу коструктор?

16 ответов

7 просмотров

if (str == "1") return MyClass(1); if (str == "2") return MyClass("2");

Первое

Ilya Zviagin
Первое

а это возможно?!

Ilya Zviagin
Да

А как это можно сделать с помощью std::function, если нельзя взять указатель на конструктор?

hazer_hazer
А как это можно сделать с помощью std::function, е...

Можно взять указатель на любую другую функцию, вызывающую конструктор

Ilya Zviagin
Можно взять указатель на любую другую функцию, выз...

а. ну это ж другое. я уж думал, что он хочет: std::map<std::string, std::function<A&()>> или типа того и туда записать конструкторы... но это невозможно

Aleksei-Budyakov Автор вопроса
hazer_hazer
а. ну это ж другое. я уж думал, что он хочет: std:...

Вообще так и хотел. Значит нужен статический метод который создаёт объект ?

hazer_hazer
а. ну это ж другое. я уж думал, что он хочет: std:...

Именно это он и хочет. И это возможно, но естественно не конструктор туда надо записывать. А функцию, создающую объект. Напомню, что конструктор не создаёт объект, его и записывать бесполезно

Aleksei Budyakov
Вообще так и хотел. Значит нужен статический метод...

Да. Можно и нестатический, или например, свободную функцию.

Ilya Zviagin
Именно это он и хочет. И это возможно, но естестве...

Я понимаю как это реализовать. Но вот то, как "он хотел" в плюсах не получится. Это не жс

hazer_hazer
Я понимаю как это реализовать. Но вот то, как "он ...

Получится, достаточно лишь конструкторы в лямбду обернуть

Ilya Zviagin
Получится

Не получится сделать стд функцию с указателем на конструктор, а вот мэп с указателями на роу функции жа

Похожие вопросы

Обсуждают сегодня

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Только такой if ($modx->event->name == 'OnBeforeCartItemAdding') { $meta = $params['item']['meta']; $lang = $modx->getConfig('_lang'); // проверяем, задана ли опция i...
Multi Web
1
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта