view addon/template_10_meta.d @ 1584:75358a6522ce

[Issue 1829] New: Inline assembler cannot get label addresses <burton-radons@shaw.ca> 2007-02-12 http://d.puremagic.com/issues/show_bug.cgi?id=1829
author thomask
date Fri, 22 Feb 2008 07:55:41 +0000
parents 9603ea1557fc
children
line wrap: on
line source

/*
    Thor - D Metaprogramming Library
    version zero
    (c) 2004-2005 Aleksey Bobnev

    Public Domain
    
    Thanks go to:
    Andrei Alexandrescu - for admirable book "Modern C++ Design" and Loki library
    Andy Friesen - for apropos library, which actually pioneered meta-programming in D
*/
/+module Thor.meta;+/
module addon.template_10_meta;

class NullT
{
}

template Equal(T0,T1)
{
    const bool Equal = false;
}

template Equal(T0,T1 : T0)
{
    const bool Equal = true;
}

template SelectType(bool c, T0,T1)
{
    alias T0 SelectType;
}

template SelectType(bool c : false, T0,T1)
{
    alias T1 SelectType;
}

template SelectAlias(bool c, alias T0,alias T1)
{
    alias T0 SelectAlias;
}

template SelectAlias(bool c : false, alias T0, alias T1)
{
    alias T1 SelectAlias;
}