위 쓰레드에서 가장 인상 깊은 코드라고 하면 C++ Template Metaprogramming 으로 작성한 코드가 아닐까..
#include <iostream>
using namespace std;
template <int i>
void Say()
{
Say<i-1>();
cout << i << ". I will not throw paper airplanes in class" << endl;
}
template <>
void Say<0>() {}
int main()
{
Say<100>();
}
class template 의 상속을 이용한 코드
아래 코드는 Base 클래스가 먼저 초기화 되야 한다는 규칙을 이용한 코드이다.
#include <iostream>
using namespace std;
template<int i>
struct C : C<i-1>
{
C() { cout << i << ". I will not throw paper airplanes in class\n"; }
};
template<> struct C<0> {};
int main()
{
C<100> c;
}
'Dev > C++' 카테고리의 다른 글
A member template cannot be virtual (0) | 2007.05.14 |
---|---|
sgi STL - Why does Bounds Checker™ say that I have memory leaks? (0) | 2007.05.14 |
MinGW - Why is my C++ binary so large? (0) | 2007.05.14 |
Why doesn't C++ provide a "finally" construct? (0) | 2007.05.14 |
bind, lambda 예제 (1) | 2007.05.11 |