100行程度でC++ならではのいくつかの文法が用いられているものってありますか?

http://www.hatena.ne.jp/1141028372
より
ほい!っと・・・
これはどうか!?
(追記:やっぱダメだわ・・・知らない人に教える事ほどムズカシイ事はない おrz!!!)

/**
無名namespace
namespace
using
抽象クラス
テンプレート
new delete

あとは
throw try catch
 functor
各種デザインパターンSTL
*/

#include <iostream>
#include <string>


namespace{
const char*hello = "Hello, world!";
void line(){
std::cout << "---------------" << std::endl;
}
}

namespace cpp{

struct IAbstruct{
virtual ~IAbstruct(){}
virtual void output() = 0;
///std::stringはコンストラクタで例外を返さないこととする。
virtual std::string name()const = 0;
};

class IOutput : public IAbstruct
{
std::string mString;
public:
IOutput(const std::string &x) : mString(x){}
virtual ~IOutput(){}
virtual void output(){
std::cout << mString << std::endl;
}
};
class COutputHello : public IOutput{
public:
COutputHello() : IOutput(hello){

}
virtual ~COutputHello(){}
virtual std::string name()const{
return std::string("COutputHello");
}
};
template<std::size_t COUNT_>
class COutputHelloCount : public COutputHello{
public:
COutputHelloCount(){}
virtual ~COutputHelloCount(){
}
virtual void output(){
std::size_t i;
for(i=0;i<COUNT_;i++){
COutputHello::output();
}
}
virtual std::string name()const{
return std::string("COutputHelloCount");
}
};
}//end of namespace

namespace cplusplus{
template<class POLICY_>
struct COutputHello{
POLICY_ mPolicy;
void output(){
mPolicy.output();
}
void output_name(){
std::cout << "template adapter" << std::endl;
std::cout << mPolicy.name() << std::endl;
}

};
}


int main(){
//compile error! 実装していないvirtual関数がある。
//IAbstruct *p = new IOutput("hello! world");

//compile error! COutputHelloの二重定義?
//using namespace cpp;
//using namespace cplusplus;


{
using namespace std;
cpp::IAbstruct *pi = new cpp::COutputHello();
pi->output();
cout << pi->name() << endl;
delete pi;
}
line();
{
std::cout << "3 count" << std::endl;
using namespace cpp;
IAbstruct *pi = new COutputHelloCount<3>;
pi->output();
delete pi;
}

line();
cplusplus::COutputHello<cpp::COutputHello> a;
a.output();
a.output_name();

line();
std::cout << "10 count" << std::endl;
typedef cplusplus::COutputHello<
cpp::COutputHelloCount<10>
> COutputHello;
using std::cout;
using std::endl;
COutputHello w;
w.output();

a.output_name();
line();
cout << std::flush;
#ifdef _DEBUG
system("PAUSE");
#endif
return 0;
}