स्टेटिक मेटाप्रोग्रामिंग (उर्फ "टेम्प्लेट मेटाप्रोग्रामिंग") एक महान सी ++ तकनीक है जो संकलन-समय पर कार्यक्रमों के निष्पादन की अनुमति देती है। जैसे ही मैंने इस कैनोनिकल मेटाप्रोग्रामिंग उदाहरण को पढ़ा, मेरे सिर में एक प्रकाश बल्ब चला गया:
#include <iostream>
using namespace std;
template< int n >
struct factorial { enum { ret = factorial< n - 1 >::ret * n }; };
template<>
struct factorial< 0 > { enum { ret = 1 }; };
int main() {
cout << "7! = " << factorial< 7 >::ret << endl; // 5040
return 0;
}
यदि कोई C ++ स्टैटिक मेटाप्रोग्रामिंग के बारे में अधिक जानना चाहता है, तो सबसे अच्छे स्रोत (किताबें, वेबसाइट, ऑन-लाइन कोर्सवेयर, जो भी हो) क्या हैं?