shared_ptr の作り方(副題:っていうかもはや吉野家コピペは時代の遺物?)

C++ 偏執狂の俺から言わせてもらえば今, C++ 偏執狂の間での最新流行はやっぱり,
new すら書かない,書かせない(例えばここの "Generalizing the auto_ptr_new() Solution" の方法など),これだね。
new_< MyClass >( hoge, hage ); (<- new じゃなくてアンダーバーが付いた new_ ね)これが偏執狂の shared_ptr (auto_ptr) の作り方.
new_ てのはアトミックだから,ここに書いてあるような, new を生で使った場合に例外安全じゃないっつー状況に対するフェイルセイフが多めに入ってる.
その上, shared_ptr< MyBase >( new MyClass( hoge, hage ) ); に比べてコード量が少なめ.これ.
で,この議論は一般にファクトリ関数全般に適用できて,さらに move semantics と深いかかわりがある.これ最強.
しかしこれ(perfect forwarding)を現在の言語仕様の範疇で力技でエミュレーションしようとすると
arity (引数の個数)に対してオーバーロードの個数が指数爆発するという危険(the forwarding problem)も伴う,諸刃の剣.
素人にはお薦め出来ない.
まあ今のところお前,1は,普通に new でもしてなさいってこった.