この記事はC++ Advent Calendar 2015の6日目の記事の予定でしたが、急遽別の記事を書くことになったので単発ネタとして投稿しておきます。
C++14はC++11のマイナーチェンジと言われてはいますが、C++14にあってC++11にない重要な機能があります。
それはstd::make_uniqueです!
私はstd::make_uniqueを使うためだけにC++14を使っているといっても過言ではありません!
で、こういうことを言うと、そもそもなんでC++11にmake_uniqueが入らなかったったんですかね?」と聞かれます。
私も風のウワサでは聞いてたのですが、せっかくなのでちゃんと調べました。
そしたら、stackoverflowにちょうどその答えが載ってました。
Herb Sutter(C++標準委員会のリーダー的存在でC++AMPとか作った人)いわく「C++11にmake_uniqueがないのは、忘れてたんだ(てへぺろ☆」(超訳)だそうです。
正確には、"That C++11 doesn’t include make_unique is partly an oversight"らしく(c.f. GotWの問102)、それだけが原因というわけではないようですが・・・1。
まぁ、そういうこともあるんですね。
軽く検索した限り、この辺の事情に関する日本語の情報がなかったので、しょーもない小ネタでした。
飲み会のネタにでもなれば幸いです。
-
それ以外の事情をご存じの方はぜひ教えて下さい ↩