BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース C++開発者がVS2015を使うべき6つの理由

C++開発者がVS2015を使うべき6つの理由

ブックマーク

原文(投稿日:2016/3/30)へのリンク

本日のBuild(訳注:Microsoftの主催する開発者会議)において,C++開発者にとって便利なVS2015の新機能を従来のバージョンと比較,論議するプレゼンテーション “6 Reasons Move your C++ code to VS2015”が行われた。VS2015は2015年7月にリリースされ,それ以降も継続的に改良されている。特に,2回にわたって実施されたアップデートでは,ローンチ当時に比較して,プロジェクトの操作に大幅な改善が加えられた。 プレゼンテーションでは,VS2015に切り替えるべき6つの理由が,“#6 使い始めた1日目から(コードを変更しなくても)メリットがある”を最初として,カウントダウン的に提示された。コード変更をまったく必要とせずにVS2015を使用してすぐに実現するという意味から,おそらくはこれが最も重要な機能だろう。このメリットは,クリーンビルドを介したコンパイルの面からも,あるいは(編集-ビルド-デバッグのサイクルに有用な)リンカの面からも,はっきりと分かるものだ。 VS2015とVS2013を比較した場合,プログラム全体の最適化(WPO)を行なわないクリーンリンクの実行において,VS2015のリンカは平均で2倍の速度を備えている。加えて,インクリメンタルリンクをサポートしたことにより,新規編集時には数倍(使用するコードベースの種類によって異なる)高速である。スタティックライブラリのインクリメンタルリンク機能やリンカのマルチスレッド化なども,この改善に寄与している。 開発者に代わって透過的に実行される,インテリジェントなコード最適化も備えている。例えばオプティマイザがifループを認識して,バイナリ出力にリファクタリングを行なう。あるいは“Loop-if unswitching”というテクニックで,ifループをforループの外に移動させる — こうすることで,if文がfalseと評価された場合には,forループ全体を完全にスキップすることが可能になる。 第5の理由は,VS2005がC++プログラミングの生産性向上を実現することだ。この新機能をプロジェクトのプロパティによって有効にすると,新しい関数に抽出すべきコードフラグメントを選択できるようになる。さらにエディタも,対象となったヘッダファイルを修正して新しい関数を反映するように促す。新しい“定義位置の移動(Move definition location)”機能では,指定した関数の定義をソースファイルからヘッダファイルに移動したり,その逆を行なうことができる。さらにIntelliSenseも,単一ファイルのブラウジングを行なうように改善されると同時に,従来よりも高速なIntelliSence検索を行なう“新データベースエンジン”の選択が可能になった。 第4の理由はデバッグサポートの強化だ。 例外のコントロール機能が変更され,デバッグ中に例外が発生した場合の処理方法をより詳細にコントロールすることが可能になった。さらに,Update 1をインストールすることにより,エディット・アンド・コンティニュー(VS2010から使用できなくなっていた)が32ビットおよび64ビットコードで再び利用できるようになった。これらエディタの拡張に加えて,新しいC++標準への準拠レベルも向上している(VS2015を使用すべき第3の理由である)。 Linuxに注力するMicrosoftのテーマに沿った第2の理由は,VS2015がLinuxアプリケーション開発をサポートしている点だ。VS2015を使用する開発者は,VS2015内で記述したC++コードを(ローカル,ネットワーク上,Azureなどの)Linux VMにデプロイして,コンパイルやデバッグを行なうことができる。この機能は,主要な3つのCPUアーキテクチャ(X86/X64/ARM)をサポートする。 V2015を使用する最後の理由は,Microsoftの目標とするモバイルアプリ開発の”選択肢(The Choice)”としてのポジションに基づくものだ。XCodeで作成されたiOSプロジェクトをVisual Studioでオープン,編集し,さらにXCodeで開発を続けることが可能になった。Linuxのサポートで行われているのと同様な手順を使用して,アプリケーションをローカルで編集した上で,対象とするMacに転送し,コンパイルやデバッグを行なうことができる。VS2015ではC++とJavaをデバッグ可能だが,現時点では,そのどちらかに切り替えなくてはならない,つまり両方を同時行なうことはできない,という制限がある。

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

BT