istream iterator lokal anlegen



  • nur ne kurze frage:

    warum geht das:

    std::istream_iterator<int> it(std::cin), end();
    std::vector<int> buffer;
    
    std::copy(it, std::istream_iterator<int>(), std::back_inserter(buffer));
    

    aber das nicht ?

    std::istream_iterator<int> it(std::cin), end();
    std::vector<int> buffer;
    
    std::copy(it, end, std::back_inserter(buffer));
    

    Mein Compiler schrieb:

    ::std::_Enable_if<!std::_Is_checked_iterator<_OutIt>::_Result,_OutIt>::_Result std::copy(_InIt,_InIt,_OutIt)": template-Parameter "_InIt" ist mehrdeutig.



  • end()
    

    wird als Funktionsdeklaration interpretiert. Lass die Klammern weg...


Anmelden zum Antworten