g ++ permet cette construction d'un istream_iterator d'une instance ifstream:Pourquoi ne puis-je pas construire un std :: istream_iterator avec un temporaire sans nom?
std::ifstream ifstr("test.txt");
std::istream_iterator<std::string> iter1(ifstr);
... mais il ne permet pas la même construction avec un temporaire sans nom:
std::istream_iterator<std::string> iter2(std::ifstream("test.txt"));
Cela donne:
erreur: aucune fonction correspondante pour l'appel à 'std :: istream_iterator, ptrdiff_t> :: istream_iterator (std :: ifstream)'
Est-ce que quelqu'un sait pourquoi cela ne fonctionne pas? - Merci!
Merci, Johannes! – Stumped6789
Et puis, encore une fois, si cela était autorisé, vous créeriez un itérateur à un ifstream déjà détruit, et ce serait UB –