﻿# Metaprogramming

Metaprogramming\. Creation of programs which in their turn create other programs as the result of their work, or change or amend themselves during execution\. An example of metaprogramming: a C\+\+ program generates SQL script to save data into a relational database\. We can speak of two types of metaprogramming: metaprogramming on the stage of compilation \(code generation\) and metaprogramming on the stage of execution \(code self\-modification\)\. 

## References

1. Wikipedia\. "[Metaprogramming](https://en.wikipedia.org/wiki/Metaprogramming)" 
1. David Abrahams, Aleksey Gurtovoy\. C\+\+ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond\. Addison Wesley, 2005, ISBN: 0321227255