RTTI расшифровывается как информация о типе времени выполнения, это также известно как отражение; он позволяет получить доступ к данным времени компиляции во время выполнения.
1 ответ

Межмодульное разрешение имен исключений через boost python не работает?

Вот моя проблема: У меня есть два модуля C++, A и B, которые построены как динамически связанные библиотеки. A предлагает основные математические функции и пользовательские типы исключений. B - это модуль более высокого уровня, который использует A.…
2 ответа

Java Generics "upcast" в непараметризованный тип

Почему я получаю ClassCastException только тогда, когда раскомментируем третье утверждение в Main.main()? И никаких исключений, но хорошо выполненные первое и второе высказывания? public class Tuple<K, V> { public final K first; public final V…
04 авг '16 в 19:02
2 ответа

C++ RTTI и производные классы

Мой C++ немного ржавый. Вот что я пытаюсь сделать: class Cmd { }; class CmdA : public Cmd { }; class CmdB : public Cmd { }; ... Cmd *a = new CmdA (); Cmd *b = new CmdB (); Первая проблема: cout << typeid (a).name () cout << typeid (b).na…
15 дек '09 в 00:59
0 ответов

Позднее связывание C++ (динамическое связывание)

AFAIK C++ поддерживает только динамическую одиночную диспетчеризацию, но не поддерживает позднюю привязку синтаксически, как это делает VB Dim x As Object Set x = CreateObject("Scripting.FileSystemObject") Debug.Print x.GetSpecialFolder(0). Но у нег…
30 сен '17 в 04:40
1 ответ

Delphi Rtti: как получить объекты из TObjectList<T>

Я работаю с пользовательским классом в XML-конвертер, и одним из требований является возможность потоковой передачи TObjectList&lt;T&gt; поля.Я пытаюсь вызвать ToArray() метод, чтобы получить объекты TObjectlist, но я получаю 'Недопустимый тип Typec…
19 сен '12 в 15:24
1 ответ

isMemberOfClass против сравнения классов с ==

Есть ли реальная разница между: id value; BOOL compare1 = [value isMemberOfClass:[SomeClass class]]; BOOL compare2 = [value class] == [SomeClass class]; проверить, если value это SomeClass объект?
27 июн '10 в 05:26
1 ответ

В Delphi XE3, как я могу привести объект TVirtualInterface к его интерфейсу, используя TypeInfo или RTTI?

Я пытаюсь использовать TVirtualInterface. В основном я пытался следовать примерам на вики- сайте Embarcadero и в блоге Ника Ходжеса. Однако то, что я пытаюсь сделать, немного отличается от стандартных примеров. Я максимально упростил следующий приме…
16 апр '13 в 23:18
1 ответ

Получение RTTI-информации об объекте из оператора new/delete

Допустим, я хочу получить все после следующего класса, и я не предполагаю дальнейшую перегрузку new или delete: class Object { public: static map&lt;std::string, unsigned int&gt; typeDeltaMap; void* operator new(size_t size) { void* p = ::new char[s…
23 ноя '16 в 13:48
0 ответов

Сохранение значения указателя на специализированную функцию шаблона

Я хотел бы использовать некоторое сопоставимое представление типа, которое не является прямым, как std::is_same<> и не использует RTTI. __PRETTY_FUNCTION__ макрос дает одинаковую строку для 2 разных классов с одинаковыми именами, определенными в раз…
1 ответ

Как я могу получить тип элемента массива, используя RTTI

Я использую этот код, чтобы получить тип элемента массива {$APPTYPE CONSOLE} uses Rtti, SysUtils; type TFooArray= array of TDateTime; Var T : TRttiType; begin try T:=TRttiContext.Create.GetType(TypeInfo(TFooArray)); Writeln(TRttiArrayType(T).Element…
31 дек '11 в 02:36
2 ответа

Стандартная безопасная проверка типа?

В моем IsSame функция, которую я хотел бы вернуть true если оба указателя указывают на объекты одного типа. Так что только средний звонок должен вернуться true, D1 а также B не должно считаться тем же. Ниже, кажется, именно то, что я хочу, но это бе…
25 апр '13 в 00:04
1 ответ

Какая версия Delphi поддерживает RTTI для открытых методов?

По умолчанию RTTI в версиях ниже 2010 создается только для опубликованных учеников. Я прочитал в блоге 2006 года (http://hallvards.blogspot.com/2006/09/extended-class-rtti.html), что с использованием $METHODINFO (или $M), общедоступные и опубликован…
01 дек '10 в 17:50
1 ответ

Какую информацию хранит RTTI для полиморфного объекта?

Прежде чем я начну - я знаю, что полиморфный объект имеет vtable для выбора правильного метода во время выполнения. Однако есть ли дополнительная информация, которую содержит каждый полиморфный объект (исключая vtable)? Я пытаюсь измерить размер / с…
4 ответа

Дублирование компонентов во время выполнения

Есть ли простой способ дублировать все дочерние компоненты родительского компонента, включая их опубликованные свойства? Например: TPanelTLabel TEdit TListView TSpecialClassX Конечно, самый важный фактор, он должен дублировать любой новый компонент,…
27 окт '08 в 03:23
2 ответа

Можете ли вы найти тип, используя его typeinfo?

Скажем, у вас есть информация о типе для класса, возможно ли получить этот тип, используя его typeinfo? В основном, если typeid карты typeinfo к типу можно сделать обратное и отобразить type к typeinfo? (Я сомневаюсь, что есть, но так как C++ не пер…
26 окт '14 в 11:18
1 ответ

Таблица виртуальных методов

Я использую этот блок: procedure ExecMethod(Target: TClass; const MethodName: string; const Args: array of TValue); var LContext: TRttiContext; LType: TRttiType; LMethod: TRttiMethod; begin LType := LContext.GetType(Target); for LMethod in LType.Get…
06 ноя '12 в 14:05
4 ответа

Как получить typeid указателя void*?

У меня есть список указателей на объекты. Эти объекты не имеют ничего общего (т.е. не имеют общего базового класса); для лучшего понимания: это список объектов, которые находятся под курсором мыши в графическом интерфейсе. Теперь я хотел бы знать, ч…
04 июл '11 в 13:30
1 ответ

Как я могу получить базовое необработанное значение Variant индексированного свойства Delphi 6, которое обращается к этому варианту?

У меня есть объект класса Delphi 6, который содержит массив из 30 вариантов, каждый из которых предоставляется через свое индексируемое свойство. Например: property responseCode: integer Index 7 read getIndexedProperty_integer write setIndexedProper…
27 янв '12 в 04:04
2 ответа

TRTTIContext многопоточный выпуск

Все, что я прочитал, указывает на то, что TRTTIContext является поточно-ориентированным. Тем не менее, TRTTIContext.FindType, кажется, иногда завершается ошибкой (возвращает ноль) при многопоточности. Использование TCriticalSection вокруг этого испр…
08 дек '14 в 22:56
1 ответ

Как я могу сериализовать std::type_info, используя сериализацию Boost?

Я хочу записать std::type_info переменной, так что при загрузке я смогу воссоздать соответствующую переменную типа. Сохранение будет выглядеть так: friend class boost::serialization::access; template&lt;class Archive&gt; void save(Archive &amp; ar, …
08 сен '10 в 17:03