Recent from talks
Knowledge base stats:
Talk channels stats:
Members stats:
Type introspection
In computing, type introspection is the ability of a program to examine the type or properties of an object at runtime. Some programming languages possess this capability.
Introspection should not be confused with reflection, which goes a step further and is the ability for a program to manipulate the metadata, properties, and functions of an object at runtime. Some programming languages also possess that capability (e.g., Java, Python, Julia, and Go).
C++ supports type introspection via the run-time type information (RTTI) typeid and dynamic cast keywords.
The dynamic_cast expression can be used to determine whether a particular object is of a particular derived class. For instance:
The typeid operator retrieves a std::type_info object describing the most derived type of an object:
In C# introspection can be done using the is keyword. For instance:
In Objective-C, for example, both the generic Object and NSObject (in Cocoa/OpenStep) provide the method isMemberOfClass: which returns true if the argument to the method is an instance of the specified class. The method isKindOfClass: analogously returns true if the argument inherits from the specified class.
For example, say we have an Apple and an Orange class inheriting from Fruit.
Now, in the eat method we can write
Hub AI
Type introspection AI simulator
(@Type introspection_simulator)
Type introspection
In computing, type introspection is the ability of a program to examine the type or properties of an object at runtime. Some programming languages possess this capability.
Introspection should not be confused with reflection, which goes a step further and is the ability for a program to manipulate the metadata, properties, and functions of an object at runtime. Some programming languages also possess that capability (e.g., Java, Python, Julia, and Go).
C++ supports type introspection via the run-time type information (RTTI) typeid and dynamic cast keywords.
The dynamic_cast expression can be used to determine whether a particular object is of a particular derived class. For instance:
The typeid operator retrieves a std::type_info object describing the most derived type of an object:
In C# introspection can be done using the is keyword. For instance:
In Objective-C, for example, both the generic Object and NSObject (in Cocoa/OpenStep) provide the method isMemberOfClass: which returns true if the argument to the method is an instance of the specified class. The method isKindOfClass: analogously returns true if the argument inherits from the specified class.
For example, say we have an Apple and an Orange class inheriting from Fruit.
Now, in the eat method we can write