C++ 在编译阶段可以干什么? -- 学习笔记
编译阶段
编译是预处理之后的阶段,输入是通过预处理之后的C++源码,输出是二进制可执行文件。
编译阶段看到的都是 C++语法实体,比如说typedef ,using ,template , struct/class 这些关键字定义的类型,而不是运行阶段的变量。
比如说,让编译器去递归计算斐波那契数列
template<int N>
struct fib // 递归计算斐波那契数列
{
static const int value = fib<N - 1>::value