vc6 等老旧的编译器大概编译不了这个程序,请使用 Dev-C++ 进行编译。
Dev-C++ 下载地址
// 文件名:gcd.cpp
// 作者:antigloss at http://stdcpp.cn
// 最后修改时间:05-10-21 1:40
// 简介:使用 Metaprogramming 方法编写求解最大公约数的程序。
// 国内把 Metaprogramming 翻译成元编程。
template < unsigned long N, unsigned long n >
struct gcd {
static const unsigned long value = gcd< n, N % n >::value;
};
template < unsigned long N >
struct gcd< N, 0 > { // specialization(模板具体化),用作终止递归
static const unsigned long value = N;
};
template < unsigned long N, unsigned long n >
const unsigned long gcd< N, n >::value;
#include <iostream>
int main()
{
std::cout << gcd< 1575, 235 >::value << "\nPress ENTER to quit...";
std::cin.get();
return 0;
}
本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。