Book Image

D Cookbook

By : Adam Ruppe
Book Image

D Cookbook

By: Adam Ruppe

Overview of this book

Table of Contents (21 chapters)
D Cookbook
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Extending the runtime type information


D's built-in TypeInfo doesn't provide nearly as much information as we can get from the compile-time reflection tools. Here, we'll create an extended type info with custom data.

How to do it…

Let's execute the following steps to extend the runtime type information:

  1. Create an interface with methods exposing the information you want to make available at runtime.

  2. If your method works with the data, remember that RTTI is typically used with very little compile-time type information. Thus, methods should take a generic runtime type, such as Object or void* in the generic interface.

  3. Create an associative array of your interface keyed on TypeInfo.

  4. Write helper functions to retrieve the information from the associative array. Use typeid() to get the lookup key from a given variable or type.

  5. Write a template class that will implement your generic interface for each supported type. The std.traits Phobos module will help with our implementation.

  6. Write a mixin template...