質問が多くてすみません....
今までVisual C++ 2008 Express Editionを使っていたのですが、この度複数の方からの推奨もありまして、
Visual Studio Community 2015を使ってC++のプログラムを作ることを決心いたしました。
それに伴っていくつか質問がございます。(Visual C++を使ったことのある方で今VS2015を使われている方に向けての質問になります)
設計をする上でVisual C++ にはなくてVS2015にある機能などはありますでしょうか?またその機能は便利(重要)でしょうか?
またVS2015でのみ使える(新しく実装された)C++の関数やクラス、その他書き方などはありますでしょうか?
なおVS2015ではDXライブラリを使ったゲーム作成が主となります。たまにproject eulerなどのコンソールプログラムにも使用するつもりです。
自分はVSやC++の知識が不足しているため、もしかしたらプログラムを書く上で大いに影響がある変更点などを知っておきたいと思い
この質問をさせていただきました。 知ってる方もしくは調べる上で重宝するサイトなどを知ってる方がおられましたら、
教えてくださると助かります。よろしくおねがいします。
Visual C++ 2008 → Visual Studio Community 2015
Re: Visual C++ 2008 → Visual Studio Community 2015
まず、質問で違和感を感じた部分を書きます。
Visual Studio 2015 で使用される C++ の開発環境は、Visual C++ です。
まず前提として、Visual Studio は統合開発環境です。
Visual Studio の中に各プログラム言語で開発するためのツールセットがあり
そのうち C++言語 を開発するためのツールセットが Visual C++ です。
(Visual Studio 2015 のメニューバーの[ヘルプ(H)]から[Microsoft Visual Studio のバージョン情報]を選択すると確認できます。)
これは、Visual C++ 2008 でも同じことが言えます。
Visual Studio 2008 で Visual C++ 2008 を使用して開発するための環境だということです。
「Visual C++ 2015 のMicrosoft固有の実装を知りたい」ということになってしまうと思います。
Visual C++ を作っているのは「Microsoft」ですが
C++言語 (の規格)を作っているのは「C++標準化委員会」です。(この説明だとツッコミが入りそうですが・・・)
Visual C++は、あくまでC++の開発環境(ツールセット)の一つです。
他のC++開発環境も「C++標準化委員会」が策定した規格に準拠するようにC++の開発環境を作っています。
(C++11,C++14,C++17 とか呼ばれているのはC++の規格のこと)
つまり、
「Visual C++のバージョンが上がって新しく策定されたC++の規格を使用できるようになった」
という事なので”VS2015でのみ使える”というのが本当に意図したことなのか疑問に思いました。
以上、質問文の違和感でした。
[hr]
これを踏まえて、質問内容を予想して答えたいと思います。
正しく意図した回答ができないかもしれませんが、ご了承ください。
と解釈しました。(設計が何を指すのかよくわからなかった)
真っ先に思いつくのは、リファクタリング機能でしょうか。
リファクタリングのリネーム機能を使用すると
プログラム作成後に、変数名を変更したいと思ったとき、
一か所変更するだけで、ほかの依存部分を考慮してリネームを自動でやってくれる機能です。
Visual Studio 2008では有料ツールでしかできなかった機能で
Visual Stduio 2013からプラグインで提供されるようになり、
Visual Stduio 2015で標準機能になりました。
他にも、いろいろありますが
だいたいは、使っているうちに気づきます。(不要なインクルードの警告表示とか)
と解釈することにします。
C++の新しい規格に対応しているかどうかは、Microsoftのページで確認できます。
安定の機械翻訳で、あやしい日本語がありますが雰囲気でわかると思います。
https://msdn.microsoft.com/ja-jp/library/hh567368.aspx
規格について解説するには量が多すぎるので、省略します。
(知りたい機能の確認は、Google検索で対応できるでしょう。)
一応、個人的に重宝している(言語)機能は
結構ありますが、これでもC++の機能としては一部です。
STLの機能を含めるのであれば、
もっといろいろ書けますがここでは省略します。
「C++11 解説」とかで検索するとたくさんヒットするので、眺めてみると良いと思います。
おすすめサイトが
リンクフリーなのかよくわからなかったので、検索ワードを書置きします。
C++11参考書の公開:C++11の文法と機能
長文になってしまいましたが、以上が回答です。
”Visual C++ にはなくてVS2015にある機能”というのは質問の本意と異なっているのではないでしょうか。onehst さんが書きました: 設計をする上でVisual C++ にはなくてVS2015にある機能などはありますでしょうか?またその機能は便利(重要)でしょうか?
Visual Studio 2015 で使用される C++ の開発環境は、Visual C++ です。
まず前提として、Visual Studio は統合開発環境です。
Visual Studio の中に各プログラム言語で開発するためのツールセットがあり
そのうち C++言語 を開発するためのツールセットが Visual C++ です。
(Visual Studio 2015 のメニューバーの[ヘルプ(H)]から[Microsoft Visual Studio のバージョン情報]を選択すると確認できます。)
これは、Visual C++ 2008 でも同じことが言えます。
Visual Studio 2008 で Visual C++ 2008 を使用して開発するための環境だということです。
”VS2015でのみ使える”というのは、onehst さんが書きました: またVS2015でのみ使える(新しく実装された)C++の関数やクラス、その他書き方などはありますでしょうか?
「Visual C++ 2015 のMicrosoft固有の実装を知りたい」ということになってしまうと思います。
Visual C++ を作っているのは「Microsoft」ですが
C++言語 (の規格)を作っているのは「C++標準化委員会」です。(この説明だとツッコミが入りそうですが・・・)
Visual C++は、あくまでC++の開発環境(ツールセット)の一つです。
他のC++開発環境も「C++標準化委員会」が策定した規格に準拠するようにC++の開発環境を作っています。
(C++11,C++14,C++17 とか呼ばれているのはC++の規格のこと)
つまり、
「Visual C++のバージョンが上がって新しく策定されたC++の規格を使用できるようになった」
という事なので”VS2015でのみ使える”というのが本当に意図したことなのか疑問に思いました。
以上、質問文の違和感でした。
[hr]
これを踏まえて、質問内容を予想して答えたいと思います。
正しく意図した回答ができないかもしれませんが、ご了承ください。
は、「Visual Studio 2008に無かったVisual Studio 2015で利用できる便利な機能はありますか?」onehst さんが書きました: 設計をする上でVisual C++ にはなくてVS2015にある機能などはありますでしょうか?またその機能は便利(重要)でしょうか?
と解釈しました。(設計が何を指すのかよくわからなかった)
真っ先に思いつくのは、リファクタリング機能でしょうか。
リファクタリングのリネーム機能を使用すると
プログラム作成後に、変数名を変更したいと思ったとき、
一か所変更するだけで、ほかの依存部分を考慮してリネームを自動でやってくれる機能です。
Visual Studio 2008では有料ツールでしかできなかった機能で
Visual Stduio 2013からプラグインで提供されるようになり、
Visual Stduio 2015で標準機能になりました。
他にも、いろいろありますが
だいたいは、使っているうちに気づきます。(不要なインクルードの警告表示とか)
は、「Visual C++ 2015 で使用可能になったC++規格はありますか?」onehst さんが書きました: またVS2015でのみ使える(新しく実装された)C++の関数やクラス、その他書き方などはありますでしょうか?
と解釈することにします。
C++の新しい規格に対応しているかどうかは、Microsoftのページで確認できます。
安定の機械翻訳で、あやしい日本語がありますが雰囲気でわかると思います。
https://msdn.microsoft.com/ja-jp/library/hh567368.aspx
規格について解説するには量が多すぎるので、省略します。
(知りたい機能の確認は、Google検索で対応できるでしょう。)
一応、個人的に重宝している(言語)機能は
- auto型(古い規格があるので注意「C++11 auto」とかで調べれば出てくる)
- 戻り値の後置き
- decltype
- 範囲ベースループ
- ラムダ式(STLを使用していると使う場面があるかも)
- enum class
- nullptr
- explicit operator
- static_assert
- final
- override
- メンバ初期化子(コンストラクタ 初期化リスト じゃない方)
結構ありますが、これでもC++の機能としては一部です。
オフトピック
前回のトピックで書いたソースでC++11機能を(解説用に)使用しているので
基本構文の参考くらいにはなると思います。
http://dixq.net/forum/viewtopic.php?f=3&t=18331#p139658
基本構文の参考くらいにはなると思います。
http://dixq.net/forum/viewtopic.php?f=3&t=18331#p139658
もっといろいろ書けますがここでは省略します。
重宝するサイトに関しては、onehst さんが書きました: 自分はVSやC++の知識が不足しているため、もしかしたらプログラムを書く上で大いに影響がある変更点などを知っておきたいと思い
この質問をさせていただきました。 知ってる方もしくは調べる上で重宝するサイトなどを知ってる方がおられましたら、
教えてくださると助かります。よろしくおねがいします。
「C++11 解説」とかで検索するとたくさんヒットするので、眺めてみると良いと思います。
おすすめサイトが
リンクフリーなのかよくわからなかったので、検索ワードを書置きします。
C++11参考書の公開:C++11の文法と機能
長文になってしまいましたが、以上が回答です。
Re: Visual C++ 2008 → Visual Studio Community 2015
inemaru様、続けての返信ありがとうございます。
>Visual Studio 2015 で使用される C++ の開発環境は、Visual C++ です。...以下違和感を感じられた部分
ものすごい誤解を生む未知な質問文であったことをお詫び申し上げます。
質問の回答は私の聞きたかった内容とばっちりリンクしてます。お手数おかけしてすみません。。。
>回答について
C++規格のほうはかなり変更点および追加点の量がありそうですね。
ただVSの機能のほうもC++規格のほうも「最初に全部おぼえよう!!」なんてやりだしたらきりがないし、
効率が落ちるからその場面に遭遇したら調べるくらいの気持ちでやったほうがいいと言われましたので
まずは回答してくださいました言語機能を一通り眺めてみて、使うべきときがきたらもう一度詳しくしらべると言うスタイルで
やってみようと思います。
詳しい情報提供ありがとうございました。
>Visual Studio 2015 で使用される C++ の開発環境は、Visual C++ です。...以下違和感を感じられた部分
ものすごい誤解を生む未知な質問文であったことをお詫び申し上げます。
質問の回答は私の聞きたかった内容とばっちりリンクしてます。お手数おかけしてすみません。。。
>回答について
C++規格のほうはかなり変更点および追加点の量がありそうですね。
ただVSの機能のほうもC++規格のほうも「最初に全部おぼえよう!!」なんてやりだしたらきりがないし、
効率が落ちるからその場面に遭遇したら調べるくらいの気持ちでやったほうがいいと言われましたので
まずは回答してくださいました言語機能を一通り眺めてみて、使うべきときがきたらもう一度詳しくしらべると言うスタイルで
やってみようと思います。
詳しい情報提供ありがとうございました。