Proposal: static template(fail)
Sean Kelly
sean at f4.ca
Thu Dec 13 12:09:41 PST 2007
Janice Caron wrote:
> I would like to propose a new statement:
>
> static template(fail);
>
> which causes a compile-time substitution failure. And remember: SFINAE
> - Substitution Failure Is Not An Error
>
> Let me give you an example:
>
> struct S(T)
> {
> static if(isFloatingPoint!(T))
> {
> /*...*/
> }
> else static if(passesSomeVeryComplicatedTest!(T))
> {
> /*...*/
> }
> else
> {
> static template(fail); // SFINAE
> }
> }
>
> This has advantages over old-style specialisation.
I guess this would require the compiler to not complain if I did this?
struct S(T)
{
static if(is(T==int))
static template(fail);
}
struct S(T)
{
}
S!(int);
Sean
More information about the Digitalmars-d
mailing list