41

私たちの多くが知っているように (そして知らない人もたくさんいますが)、C++ は現在、約 2 年後に発行される予定の国際標準の次の改訂版の最終草案を作成中です。ドラフトと論文は現在、委員会のウェブサイトから入手できます。あらゆる種類の新機能が追加されていますが、最大のものはコンセプトとラムダです。多くの新機能を含む非常に包括的なウィキペディアの記事があります。GCC 4.3 以降では、一部の C++0x 機能が実装されています。

新機能に関する限り、私は型特性 (および適切な概念) が本当に好きですが、私の明確なリーダーは可変個引数テンプレートです。0x までは、通常、長いテンプレート リストには Boost Preprocessor が含まれており、非常に書きにくいものでした。これにより作業がはるかに簡単になり、可変個引数テンプレートを使用して C++0x テンプレートを完全に機能する言語のように扱うことができます。私はすでにそれらを使っていくつかの非常にクールなコードを書いています。

では、最も期待している機能は何ですか?

4

23 に答える 23

63

変数型推論のautoキーワード

于 2008-09-26T04:47:13.653 に答える
33

ラムダと初期化リスト。

また、最終的に C++ をガベージ コレクション モデルに簡単に導入できるようにするための変更も、非常に興味深いようです。おそらく C++1x は実際にガベージ コレクションを導入するでしょうが、0x/10 は不測の事態に備えて準備を整えるだけです。

于 2008-09-26T05:00:30.937 に答える
25

Rvalues 参照が必要です。

他のすべての新機能は、私たちがなくても簡単に生活できるものです (悲しいかな機能)。しかし、これまでのところ、C++ に Rvalue がないため、何百人ものテンプレート ライブラリの作成者が壊れた Rvalue ref の問題を「ハック」する必要がありました。

于 2008-09-26T05:04:52.347 に答える
22

可変長テンプレート!(これを r 値参照と組み合わせることで、完全な転送が可能になります!)

于 2008-09-26T06:00:44.867 に答える
17

スレッドとアトミック。

現在のマルチコア プロセッサでは、標準の C++0x は C++07 である必要があります。

G.

于 2008-09-26T04:52:10.473 に答える
15

強く型付けされた列挙型は私の投票を取得します。Pascal はこれらを約 40 年間しか使用していないため、C++ がようやく追いつくのを見るのは良いことです。

ただし、標準の発行は実際にはイベントではありません。さらに重要なことは、使用したい機能が、実際のツールチェーンで完全かつ確実にサポートされている場合です。既知のコンパイラではコンパイルできない標準準拠のコードを書くことを実際に楽しんでいるように見える人々がいます。彼らに幸運を。

于 2008-10-29T21:24:52.413 に答える
11
  1. 一部のBoostライブラリを組み込む必要があります(shared_ptr <>およびリストの一番上にバインド)

  2. テンプレートのインスタンス化を制御することで、膨大なコンパイル時間の問題が最終的に解決され、大規模なプロジェクトで最新のテンプレート コードを実際に使用できるようになります。

  3. テンプレートの typedef

他にも小さいながらも重要なことはたくさんありますが、それらは製品コードでは重要です。

于 2008-09-26T05:16:53.880 に答える
10

Null Pointer TypeTuple Types、またはRegexのいずれかを決定できません。「Foreach」もそこにあります。「スマートポインター」は言うまでもありません... :-)

基本的に、更新をとても楽しみにしています。

個人的には、null ポインター型を多用すると多くのバグが発生すると思います。タプルは、リレーショナル データを扱うのに最適です。クールなものがたくさん。

于 2008-09-26T05:25:33.343 に答える
10

私のために概念を伝えます。しかし、初期化子リスト、ラムダ、および可変個引数テンプレートは僅差です。

于 2008-09-26T05:08:09.530 に答える
8

大きくはありませんが、真のnullptrのアイデアが気に入っています。git-go からのキーワードであったはずです。

于 2008-09-29T06:30:55.053 に答える
7

私にとっての閉鎖。

于 2008-09-26T05:01:27.830 に答える
7

自動キーワード

于 2008-09-26T05:01:42.480 に答える
5

ラムダ概念

于 2008-09-26T05:18:23.063 に答える
5

反復構文はfor (auto x : collection)とてもクールだと思います...多くのループヘッダーのサイズを文字通り4分の1以上削減します(反復子の型はしばしば...冗長です)!

また、ループの本体で反復子を逆参照する必要がないことも意味します (従来の反復子ループでは、要素の値を取得するために常に*iori->...を使用する必要がありますが、ここでは を使用するだけで済みますx)。ケースを使用すると、コードが見栄えがよくなります。

于 2010-11-16T08:42:26.330 に答える
4

ネストされたテンプレート宣言の山かっこ。

だから書けるようになる

std::vector<std::vector<int>> a;

恐ろしい代わりに

std::vector<std::vector<int> > a;
于 2010-06-25T10:47:07.543 に答える
4

ユニコード、マルチスレッド、hash_tables、スマート ポインター、および正規表現。

ps : gr8 のコード レビューを行って、boost と tr1 のすべてのライブラリを標準に受け入れ、すべての人にとって生活を楽にすることができないのはなぜだろうか。彼らが解決しなければならないことは、機能するオプションのガベージ コレクション モデルに同意することだけです。

于 2008-09-26T05:03:00.527 に答える
3

構文はますます悪化します。

可変個引数テンプレートとラムダは便利ですが、残念ながら両方の構文はかなり好ましくありません。

于 2008-09-26T16:38:28.550 に答える
3

スマート ポインター。ヒープに割り当てられたオブジェクトを明示的にメモリ管理する必要がないということは、本当に大きな違いをもたらします。

明らかに、「自分が何をしているかを知る」必要がありますが、私の経験では、私が使用したソフトウェアでメモリ関連のバグの数が少なくとも 1 桁減少しました。

于 2008-09-26T20:41:08.217 に答える
2

decltype :-)とラムダ

于 2010-09-18T05:26:05.383 に答える
2

constexpr特に、可変個引数テンプレートとユーザー定義リテラルを組み合わせると、最終的にバイナリ リテラルやその他の多くの機能を利用できるようになります。

obj.bitmask |= 00001010B; 
于 2008-10-26T10:09:20.440 に答える
1

生の文字列リテラル! Python のような文字列ブロックは素晴らしいと思っていましたが、違いました。C++0x では、生の文字列リテラルはテキストの書式設定に非常に役立ちます。マークアップ言語はソースに直接記述できます!

于 2010-06-25T10:30:48.727 に答える
1

正規表現!! および並列プログラミング ライブラリですが、それらのすべての機能はまだわかりません。

于 2009-05-29T02:12:04.513 に答える
0

今のところ、私が遊んだ C++0x の多くが気に入りました。

  • nullptr
  • static_assert
  • ラムダ
  • shared_ptr と weak_ptr
  • unique_ptr
  • decltype と auto

私は試し<regexp>たことはありません...私はそれが巨大なアイデアだと思っていました...しかし、私はそれを見る時間さえありませんでした.

于 2010-10-29T12:24:41.317 に答える