Size: a a a

2020 August 09

d

d7d1cd in pro.cxx
Constantine Drozdov
Как и всегда, генерировать таблицу сопоставления методов (искать по словам рефлексия C++)
Спасибо! Буду искать )
источник

KO

Konstantin Osipov in pro.cxx
Копать нужно в сторону C++ reflection
источник

KO

Konstantin Osipov in pro.cxx
Но я бы так делать не стал, вполне возможно вы что то делаете не так и вам нужно в приложение внедрить какой-то скриптовый язык вместо этого, например lua
источник

К

Константин in pro.cxx
Konstantin Osipov
Копать нужно в сторону C++ reflection
Так ее нет
источник

CD

Constantine Drozdov in pro.cxx
Константин
Так ее нет
Встроенной в язык нет
источник

К

Константин in pro.cxx
Constantine Drozdov
Встроенной в язык нет
А не встроенной это разве что через boost::fusion
источник

К

Константин in pro.cxx
И то по мемберам знаю, а по методам ...
источник

CD

Constantine Drozdov in pro.cxx
Константин
А не встроенной это разве что через boost::fusion
Кодогенерация решает эту проблему буквально за 0.25сек
источник

К

Константин in pro.cxx
Constantine Drozdov
Кодогенерация решает эту проблему буквально за 0.25сек
Так дайте, человеку решение, я б тож посмотрел на реализацию
источник

CD

Constantine Drozdov in pro.cxx
d7d1cd
Спасибо! Буду искать )
Да, кстати, можно поискать по remote method invocation ещё, там могут быть решения, им надо эту же задачу решать
источник

CD

Constantine Drozdov in pro.cxx
А, или они декларации там упоротые пишут под универсальные реализации, ладно
источник

d

d7d1cd in pro.cxx
Konstantin Osipov
Но я бы так делать не стал, вполне возможно вы что то делаете не так и вам нужно в приложение внедрить какой-то скриптовый язык вместо этого, например lua
Я не решаю конкретную задачу. У меня есть знакомый Делфи разработчик. Он говорит, что в С++ нет RTTI. Я говорю ты не прав, RTTI есть. Он говорит, что если есть то попробуй написать на С++ код, в котором метод класса вызывается по имени из строки. Конечно, это к RTTI не имеет отношения, но вопросом я озадачился. Он говорит, что в Делфи такая задача делается в две строки.
источник

CD

Constantine Drozdov in pro.cxx
d7d1cd
Я не решаю конкретную задачу. У меня есть знакомый Делфи разработчик. Он говорит, что в С++ нет RTTI. Я говорю ты не прав, RTTI есть. Он говорит, что если есть то попробуй написать на С++ код, в котором метод класса вызывается по имени из строки. Конечно, это к RTTI не имеет отношения, но вопросом я озадачился. Он говорит, что в Делфи такая задача делается в две строки.
Нет рефлексии. Рантаймовой рефлексии не будет скорее всего никогда.
источник

CD

Constantine Drozdov in pro.cxx
Компильтаймовая рефлексия когда-нибудь сможет подобные таблицы генерировать, пока проще всего из DSL генерировать интерфейсы
источник

D

Danya in pro.cxx
d7d1cd
Я не решаю конкретную задачу. У меня есть знакомый Делфи разработчик. Он говорит, что в С++ нет RTTI. Я говорю ты не прав, RTTI есть. Он говорит, что если есть то попробуй написать на С++ код, в котором метод класса вызывается по имени из строки. Конечно, это к RTTI не имеет отношения, но вопросом я озадачился. Он говорит, что в Делфи такая задача делается в две строки.
В С++ есть RTTI, он не такой богатый. Я не могу придумать юзкейс, когда нужно будет вызывать метод по имени
источник

CD

Constantine Drozdov in pro.cxx
Danya
В С++ есть RTTI, он не такой богатый. Я не могу придумать юзкейс, когда нужно будет вызывать метод по имени
RMI
источник

CD

Constantine Drozdov in pro.cxx
и все остальные случаи, когда надо сериализовывать вызовы
источник

CD

Constantine Drozdov in pro.cxx
Проблема, что таблицы рантаймовой рефлексии размером сопоставимы (если не превышают) размеры всей остальной скомпилированной программы
источник

CD

Constantine Drozdov in pro.cxx
Более того, проблема, что все эти методы теперь обязательно генерировать, а std::vector<int>::size скорее всего не будет в норме отдельной функцией
источник

CD

Constantine Drozdov in pro.cxx
d7d1cd
Я не решаю конкретную задачу. У меня есть знакомый Делфи разработчик. Он говорит, что в С++ нет RTTI. Я говорю ты не прав, RTTI есть. Он говорит, что если есть то попробуй написать на С++ код, в котором метод класса вызывается по имени из строки. Конечно, это к RTTI не имеет отношения, но вопросом я озадачился. Он говорит, что в Делфи такая задача делается в две строки.
В общем, в некоторых рамках эта задача могла бы быть реализована компилятором по явному запросу на генерацию, но с точки зрения С++ если задача может быть решена без компилятора не очень понятно, зачем её решать компилятором
источник