MSVCのバージョン表記を統一#521
Conversation
|
@yumetodo 私が環境がなくてレビューがむずかしいので、レビューをお願いしてもよろしいでしょうか? |
|
|
||
| ### C++11の機能を有効にする | ||
|
|
||
| - 全ての機能が常に有効となっている |
There was a problem hiding this comment.
@sayurin この説明は誤りではないでしょうか?VS2017に偏りすぎた説明で読者に誤解を与えると思います
There was a problem hiding this comment.
C++14に対して未実装機能があるにもかかわらず「そのリリース時の最新言語バージョンが有効となる」と表現されていたので、C++11についてもそれに倣った表現を考えました。
←「実装済みの機能は全て有効になる」という表現も考えてはいました。
There was a problem hiding this comment.
There was a problem hiding this comment.
たしかにこのページのこの文章単体だと、C++11の機能が全て使えるように思えてしまいますね。これまでの文章にならうなら、「常にC++11は有効である」とかでしょうか?タイトルと「C++11」が重複してしまいますが、「常に有効である」と書くと主語がなくなってしまいますし…。
「実装済みの機能は」をつけるのは、ほかのコンパイラではそのように書いていないことから、不公平な記述になってしまいそうです。
There was a problem hiding this comment.
読者ができるだけ誤解なく正確に理解できる事が最も優先されるべき目的と思いますので @faithandbrave さんの例示したように「常にC++11は有効である」としておけば良いのではないかと思います。また、この考えに基いて私からは、「実装済みの機能は」を書き加えておく事も、読者がこのページを参照する目的に対しより正確な表現かつ余剰という程でもなく伝えられ、付け加えても構わないのではないかな、と思います。但し、付け無い方が体裁として美しいから付けない、という意見に反対するほどではありません。
There was a problem hiding this comment.
対称性を踏まえて次のようにしてみました。
- C++11は常に有効である
- C++14は常に有効である
- 2015 Update 2以前に実装された機能については、互換性の観点から常に有効である
いかがでしょうか?
|
|
||
| ### C++14の機能を有効にする | ||
|
|
||
| - 14.0 Update 2までは、言語のバージョンを切り替える機能はなく、そのリリース時の最新言語バージョンが有効となる |
There was a problem hiding this comment.
2015 Update 3前後で「C++14の機能を有効にする」の観点では何も変化がないため誤解を招かない表現を考えました。
| - 14.0 Update 2までは、言語のバージョンを切り替える機能はなく、そのリリース時の最新言語バージョンが有効となる | ||
| - 14.0 Update 3からは、`/std:c++14`オプションを使用する。とくに指定しない場合はデフォルトでC++14が有効となる。この時`_MSVC_LANG`マクロが`201402`になる | ||
| - 全ての機能が常に有効となっている | ||
| - 2015 Update 3から`/std:c++14`オプションが導入されたが既定値でありC++14を無効化する機能は提供されていない。`_MSVC_LANG`マクロの値は`201402`になる |
| | Visual Studio 2017 | 15.3.3 | 14.1 | 1911 | 191125507 | | ||
| | Visual Studio 2017 <sup><a id="note_ref-visual_cpp_ver-1" href="#note-visual_cpp_ver-1">[§注1]</a></sup> | 15.0 | 14.1 | 1910 | 191025017 | | ||
| | Visual Studio 2017 RC | | 14.1 | 1910 | 191024930 | | ||
| | Visual Studio 2017 Update5 | 15.5.7 | 14.12 | 1912 | 191225835 | |
There was a problem hiding this comment.
2017 Update 5からside-by-sideをサポートし、バージョンを区別するために v14.11 という表現をするようになりました。一時的なものかと様子を見ていましたが、2017 Update 6 Previewではバージョンがさらに増えていました。そのため4桁で表現する必要があると考えました。

There was a problem hiding this comment.
side-by-sideをサポートし
なんと・・・たしかに4桁必要そうです。
|
ありがとうございます。 @yumetodo さんからも承認がでているので、マージしちゃいますね。 |

バージョン表記が「14.0 Update 3」「15.3」と揺れがあったので統一した。
製品名、Visual C++ バージョンも不完全な部分を修正した。
言語機能の切り替えについても補足しつつ修正した。