BT

Modern C++とVisual Studio

| 作者: Jeff Martin フォローする 16 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2014年4月9日. 推定読書時間: 3 分 |

原文(投稿日:2014/04/05)へのリンク

Herb Sutter氏は、MicrosoftのBuild conferenceにおいてModern C++の現在のステータスについて講演した。C++の推進はMicrosoftにおける過去数年のルネッサンスのようなものであり、Sutter氏はこの増加に焦点を向けている。 

 

今後のC++リリース

Sutter氏ははじめに、現時点でのISO C++標準の簡単な要約について説明した。今年2月にC++14の技術議論が完了し、標準化委員会は今年の後半に公式なISO標準になるように、この規格の承認に向けて投票を進めている。

(現在、設計中で議論中の)C++17標準がメジャーリリースであると見なされているのに対し、C++14リリースはマイナーリリースと見なされている。Microsoftの最新コンパイラープレビュー(CTP)は、昨年11月にリリースされた。Sutter氏による信頼度の高い情報によると、(まだ日付が発表されていない)次のCTPでは、次の機能が含まれていると予想されている:

  • ユーザー定義リテラル
  • C++14汎用ラムダキャプチャー
  • C++14 libs: std:: ユーザー定義リテラル
  • インライン名前空間 

以下の機能は、このCTPにおいては中程度の確度(後のリリースで遅らせる可能性がある)である:

  • リテラル中のユニバーサルキャラクター名
  • noexcept (条件)
  • char16_t, char32_t, 属性
  • thread_local
  • 無制限ユニオン
  • consexpr (コンストラクタ, リテラル型を除く)
  • constexpr (コンストラクタ, リテラル型を含む)

パラレルSTL(PPL, TBB, Amp, CUDA, Thrustの融合)は、来週CodePlexにリリースされる予定である。Sutter氏は、過去2年は(GoingNative)に置き換えられている、2014年9月7日-12日に予定されているCPPConというC++カンファレンスにスポンサードすることを発表した。

 

Modern C++ユースケース

次のパートでは、今日のアプリケーション開発におけるmodern C++のユースケースについての議論に移った。Sutter氏の意見では、C++は以下のゴールや目標が必要な時に利用が必要である:

  • クロスプラットフォームの移植性と互換性
  • ハイパフォーマンスと完全なコントロール
  • ハードウェアやOSのリソースへの完全なアクセス
  • C++言語ハイライト: デフォルトで値型、デフォルトでの決定論、デフォルトでの連続性 

Sutter氏は、Modern C++はC++98--ではなく、Modern C++は、高速で柔軟なまま、よりクリーンで、より安全であると見ている。多くのケースで、コンパイラーから改善の警告や提案はあるものの、古いC++がサポートされないと言っているわけではない。

Modern C++が提供する機能のひとつに(開発者の視点で)単純化されたcode>new-> make_uniqueやnew->make_sharedを使った時のメモリ管理がある。deleteが不要で、自動的に例外処理セーフなライフタイム管理が可能だ。

別のエリアでは、値型の移動操作をより効率的に処理する方法だ。C++11では、オブジェクトのように型を移動するアイディアが追加されたこのアプローチをふまえ、削除しなくてはならないコピーを作るのではなく、所有権を持つようにした。改善されたmoveセマンティクスは、C++14機能を持つコンパイラーで再コンパイルすることで、レガシーコードを簡単にスピードアップさせることができる。

 

より高速なコードを書く

連続した配列は、多くのオブジェクトを操作して、本当に隣接したアドレス順にアクセスしたいときに、重要だが忘れがちである。もし本気でパフォーマンスが重要なら、リストや配列リストだけでなく配列を使用する。

そのテーマに沿ってすすむと、Sutter氏はvectorで大量リストの挿入と削除によるベンチマークを提示した。事前に確保したリストは通常のリストよりも高速だが、Vectorよりもはるかに悪いままである。

Sutter氏の話しは非常に有益で有り、彼は魅力的なスピーカーのままである。完全な話しを見たい場合は、Channel9サイトを参照して欲しい。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT