istreambuf_iterator<char>() komischer Fehler



  • Hallo,

    warum compiliert folgender Code fehlerfrei

    ifstream sourceFile("test.txt");
    std::string sourceCode(istreambuf_iterator<char>(sourceFile), (istreambuf_iterator<char>()));
    std::make_pair(sourceCode.c_str(),sourceCode.length()+1);
    

    aber bei diesem gibt es Fehler

    ifstream sourceFile("test.txt");
    std::string sourceCode(istreambuf_iterator<char>(sourceFile), istreambuf_iterator<char>());
    std::make_pair(sourceCode.c_str(),sourceCode.length()+1);
    

    Es wurden nur die Klammern um das Zweite istreambuf_iterator<char>() geloescht.

    mfg
    🙂



  • Ohne die Klammern interpretiert der Compiler istreambuf_iterator<char>() als eine Funktion die istreambuf_iterator<char> zurückgibt.


Anmelden zum Antworten