Wednesday, October 5, 2016

Specialization Template

#include "stdafx.h"

template<int i> struct D { D(void*); operator int(); };

template<int p, int i> struct is_prime {
 enum {prim=(p==2) ||(p%i)&&is_prime<(i>2?p:0),i-1>::prim };
};
template<> struct is_prime<0,0> { enum { prim = 1 }; };
template<> struct is_prime<0,1> { enum { prim = 1 }; };


int main()
{
 auto p = is_prime<243, 20>::prim;
    return 0;
}

No comments:

Post a Comment