In Part I in the series on C++ Metadata, I explored how to build the basics of a runtime metadata system for C++ types, including custom classes, third-party libraries’ classes, and even C++ primitives. The article detailed building the low-level facilities to have metadata, but did not cover any real-world uses of metadata. Today’s article [...]
Class metadata systems allow C++ applications to have a sizable fraction of the runtime reflection and introspection available in other high level languages, such as C#, Python, or Java. While C++ does not offer any true metadata system itself (excluding the nearly useless typeinfo/RTTI system, which is barely enough to handle dynamic_cast‘s needs), it’s certainly [...]
C++11 has brought us a few significant language and library improvements which can make for greatly increased API ease of use and performance. Several of these features have a huge impact on how we write custom containers. Since I haven’t seen any in-depth articles on this topic, and honestly haven’t seen any truly in-depth articles [...]
To say that the object-oriented programming paradigm is the most popular and widely supported method of creating software today would be an extreme under-statement. Not only entire sets of tools but entire organizational development processes are built around the object-oriented model. The popularity of languages like C++, Java, C#, and other object-oriented languages has skyrocketed [...]
Lua is a popular scripting language in the games industry. It has an easy to use C API, a decently fast virtual machine, and as fully featured language environment. Unfortunately, as with all sufficiently advanced technologies, there are some things to watch out for when integrating Lua into your own game engine. The trickiest to [...]