Вопросы по теме 'rtti'

это vs typeof
Какой из этих фрагментов кода быстрее? if (obj is ClassA) {} if (obj.GetType() == typeof(ClassA)) {} Изменить: я знаю, что они не делают то же самое.
120997 просмотров
schedule 14.07.2023

Извлечь параметры шаблона C++
Хотя я сомневаюсь, мне любопытно, можно ли извлечь параметры шаблона примитивного типа из существующего типа, возможно, используя RTTI. Например: typedef std::bitset<16> WordSet; Можно ли извлечь число 16 из приведенного выше кода...
20117 просмотров
schedule 01.07.2023

Насколько дорого стоит RTTI?
Я понимаю, что использование RTTI снижает ресурс, но насколько он велик? Куда бы я ни посмотрел, везде написано, что «RTTI - дорогое удовольствие», но ни один из них на самом деле не дает никаких тестов или количественных данных, касающихся памяти,...
77099 просмотров
schedule 15.07.2022

Метод вызова Delphi на основе информации RTTI
Привет всем, сначала извините за мой плохой английский. Рассмотрим следующее (не фактический код): IMyInterface = Interface(IInterfce) procedure Go(); end; MyClass = class(IMyInterface) procedure Go(); end; MyOtherClass = class published...
4260 просмотров
schedule 23.08.2022

Какой шаблон проектирования / RTTI
Я ищу лучший способ отправки объектов правильному «целевому» объекту. У меня есть базовый класс команд: Cmd, два подкласса: BufferCmd и StateCmd. Команда «GotoLine» является производной от BufferCmd, а «ChangeCmd» — от StateCmd. BufferCmds...
663 просмотров
schedule 05.01.2023

Какое время жизни памяти указано для typeinfo::name()?
В C++ я могу использовать оператор typeid для получения имени любого полиморфного класса: const char* name = typeid( CMyClass ).name(); Как долго строка, на которую указывает возвращенный указатель const char* , будет доступна моей...
353 просмотров
schedule 15.09.2022

нет RTTI для неименованных типов данных
Насколько мне известно, компилятор не генерирует RTTI, если тип не указан. например: T = массив [0..1,0..1] целых чисел; В этом случае можно узнать общий размер массива, но невозможно узнать размер каждого измерения. Это работает, только если я...
543 просмотров
schedule 04.01.2023

Delphi: предотвращение появления имен методов в исполняемых файлах
Я пишу класс для обеспечения безопасности в моем исполняемом файле (проверка серийных номеров, проверка даты испытания и т. Д.). После компиляции исполняемого файла (даже в сборке Release, когда все отладка и генерация RTTI отключены), когда я...
1129 просмотров
schedule 28.05.2022

сравнение типов во время выполнения
Мне нужно найти тип объекта, на который указывает указатель. Код приведен ниже. //pWindow is pointer to either base Window object or derived Window objects like //Window_Derived. const char* windowName = typeid(*pWindow).name();...
2997 просмотров
schedule 27.12.2022

Java isInstance против оператора instanceOf
Вся эта штука с дженериками сбивает меня с толку, и тем более RTT. Специфика? Ну вот суть: enum QueryHelper { query1, query2; static <T> QueryHelper getQueryHelper (Class<T> expectedReturn) { if (expectedReturn.isInstance...
48648 просмотров
schedule 21.02.2023

Delphi - Наследование визуальной формы - Определение базового класса компонентов
Я использую VFI (наследование визуальной формы), и мне нужно проверить, принадлежит ли компонент созданной формы к классу формы или к суперклассу формы. Любые идеи ? unit1 TFormStatus = class(TForm) cpPanel: TPanel; lblStatus:...
1065 просмотров
schedule 20.01.2023

Как лучше всего выставить экземпляр класса в DWScript
Я собираю возможности встроенного скрипта, используя превосходный Pascal DWScript . Я также добавил свое собственное определение класса на стороне Delphi (TDemo) в DWScript, используя: dwsUnit.ExposeRTTI( TDemo.ClassInfo ) Это просто...
851 просмотров
schedule 15.07.2023

вызов метода универсального списка с RTTI
Я не знаю, как это сделать: Имея эти объекты: TMyObject = class; TMyList<T: TMyObject> = class(TList<T>) public function Execute(aParam1, aParam2:string):boolean; end; TMyOtherObject = class(TMyObject) TMyOtherList =...
570 просмотров
schedule 20.12.2023

Что делают различные записи типов элементов в TypeData для динамических массивов?
Поле TTypeData, содержащее RTTI для разных типов данных, имеет три разных значения типа элемента для динамического массива: elType: PPTypeInfo; // nil if type does not require cleanup elType2: PPTypeInfo; // independent of cleanup...
281 просмотров
schedule 02.05.2022

Rtti не работает с универсальными типами, используемыми в качестве полей класса.
У меня были проблемы с использованием rtti для получения информации о полях класса универсального типа. После некоторого поиска в Google я нашел запись в QC , описывающую проблема. Мой вопрос в том, знает ли кто-нибудь обходной путь, или если это...
1390 просмотров
schedule 19.01.2023

Как скопировать свойства одного экземпляра класса в другой экземпляр того же класса?
Я хочу дублировать класс. Достаточно скопировать все свойства этого класса. Это возможно: перебирать все свойства класса? присвоить каждое свойство другому свойству, например a.prop := b.prop ? Геттеры и сеттеры должны заботиться о...
4950 просмотров
schedule 25.05.2022

Может ли RTTI запрашивать типы из кода проекта во время разработки?
Я хотел бы использовать RTTI для проверки типов, содержащихся в исходных файлах проекта, во время разработки, а не во время выполнения. Насколько мне известно, это не поддерживается, но обсуждение в комментариях этот вопрос указывает, что это...
599 просмотров
schedule 23.10.2023

Разрешено ли объекту законно изменять свой тип во время своего существования в C++?
У меня есть этот код: class Class { public: virtual void first() {}; virtual void second() {}; }; Class* object = new Class(); object->first(); object->second(); delete object; что я компилирую с помощью Visual C++ 10 с /O2 и...
308 просмотров

Профилирование времени жизни объекта C++
Класс ObjectInfo — это диагностический класс, предназначенный для отслеживания статистических данных, таких как время жизни и количество объектов. Конкретный класс наследуется от ObjectInfo, как показано. Затем член этого конкретного класса...
883 просмотров
schedule 19.05.2023

RTTI через границы модулей в Itanium и MSVC ABI
Я читаю Itanium ABI , в котором говорится, что Предполагается, что два указателя type_info указывают на эквивалентные описания типов тогда и только тогда, когда указатели равны. Реализация должна удовлетворять этому ограничению, например. с...
370 просмотров
schedule 04.12.2022