4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

C++11になぜmake_uniqueがないのか

Last updated at Posted at 2015-12-05

この記事は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
まぁ、そういうこともあるんですね。

軽く検索した限り、この辺の事情に関する日本語の情報がなかったので、しょーもない小ネタでした。
飲み会のネタにでもなれば幸いです。

  1. それ以外の事情をご存じの方はぜひ教えて下さい

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?