Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

Welcome to meta

This projects aims to collect compile time functions and templates that might be useful to anyone doing stuff at compile time. It's licensed under a BSD-style license, see LibraryLicense. If you like some code for your own projects and have an incompatible license, please drop me a line!

News

The first version of the library is online now.

Implemented features of the library

  • Functions for converting floats, ints and strings into one another
  • Functions for basic parsing routines and enquoting for mixin programming.
  • A powerful compile-time demangler. Despite printing your favourite identifiers it provides the following features:
    • You can access some variables by passing them as an alias instead of passing the name of it as a string, which is the common case for most meta programs.
    • You can find out, whether a given identifier is a function (static) or a method (non-static), which was almost impossible before! Just call meta.Identifier.isFunction !(myfunc) and meta.Identifier.isMethod !(myfunc) on your favourite functions.

Missing features of the library

  • Some floating point functionality is missing.
  • Working on tuples is interesting for many people, so this will be important in the future.

Need Help

If you have other ideas what might be missing (and how to do it in general, as this is not always obvious to me), just open a ticket and explain. If you have code that might fit herein, write a PM and I'll give you svn access.