none
vs2019で有効なincludeの扱い方 RRS feed

  • 質問

  • Visual StudioでのC++の概要(2017年12月04日)
    https://docs.microsoft.com/ja-jp/visualstudio/ide/getting-started-with-cpp-in-visual-studio?view=vs-2019

    上記の記事によると

    #include "stdafx.h"
    #include <iostream>
    using namespace std;

    int main()
    {
     cout << "Hellow\n";
     return 0;
    }
    とあります。
    この記事のURLはvs-2019とあるのでVS2019用とも読めますが、記事の日付は2017年です。この記事は本当にVS2019用なのか疑問です。
    実際、これをVS2019でビルドすると、stdafx.hが開けないとのエラーになります。
    ところが、VS2019から新規プロジェクトを作ると
    #include <iostream>
    int main()
    {
     cout << "Hellow\n";
    }
    となりもちろんエラーはありません。
    別な記事でvs2019では、namespaceはiostreamに入っているとか、プリコンパイルヘッダpch.h(?)働きでstdafx.hを含むなどの記事があったように思いますが、
    このあたりの統括的な説明の記事はどこかないでしょうか。
    ちなみに最初のコードの#include "stdafx.h" を #include "pch.h"と置き換えましたが、これもpch.hが開けないとなります。
    追加の質問となります。
    ファイルの入出力をするため、VisualStudio2017用のガイド本を参考に
    #include <iostream>
    #include <fstream>
    int main()
    {
     cout << "Hellow\n";
     ofstream fout;
     fout.open("mytext.txt");
    }

    とするとofstreamが定義されていないとなります。
    追加の質問で申し訳ありませんが、同様にvs2019で有効なファイルストリームに関する統括的な説明記事がどこかにないでしょうか。検索ではそのままではvs2019に適用できるのが見当たらないのです。

    便宜的にはひな形があればよいわけですが、上記の関係でvs2019でそのまま有効な記事も見つけられないのです。がぜひ統括的な理解を深めたいです。


    2019年8月30日 7:56

すべての返信

  • 指摘の内容はドキュメント誤りでしかありません。

    「統括的な理解」ということであれば、Visual Studioとしては「必要なファイルを指定する」以上でも以下でもありません。stdafx.hであれpch.hであれ、必要であれば指定しますし、不要であれば指定しません。要否の判断はプログラマの責務であり、第三者が強制するものではありません。

    2019年8月30日 21:36