元编程示例

 C++(元编程)
template<int N>
struct factorial
{
  enum={value = N * factorial<N - 1>::value};
};
template<>
struct factorail<0>
{
   enum{value=1};
};

void main()
{
  //以下等价于cout<<120<<endl;
  cout << factorail<5>::value << endl;
}

这段代码用模板元编程实现了阶乘运算,这里的阶乘的值实在编译时而非运行时计算出来的。这段代码以模板形式通过编译器生成了新的代码,并在编译期间获得执行。

 

 

元编程的例子比如:如多IDE如visual studio,deplphi,eclipse等均能通过向导,拖放空间方式自动生成代码;UML荚膜工具通过将类图转换为代码;servlet引擎将jsp转化为java代;包括spring,hibernate等从配置文件。annotation等产生代码。

 

  元编程着重生成代码的可执行性。除了能在编译器生成源代码的静态元编程,还有能在运行期间修改程序的动态元编程。如果许多脚本语言提供的eval函数。

 

你可能感兴趣的:(eclipse,spring,编程,Hibernate,UML)