1 2 3 4 5 6 7 8 9 10 11
// Build don't link: template<int M, int N> class GCD { public: enum { val = (N == 0) ? M : GCD<N, M % N>::val }; }; main() { GCD< 1, 0 >::val; // ERROR - division }