Ich habe eine Frage bezüglich der Funktion Vorlage Parameter Typ Deduktionsprozedur.Braced-Init-Listen und Funktion Vorlagentyp Abzug Auftrag
Nehmen Sie dieses Beispiel:
#include <vector>
#include <sstream>
#include <string>
#include <iterator>
#include <fstream>
int main()
{
std::ifstream file("path/to/file");
std::vector<int> vec(std::istream_iterator<int>{file},{}); // <- This part
return 0;
}
Wenn ich die Dinge richtig zu verstehen, der zweite Parameter abgeleitet ist vom Typ sein std::istream_iterator
von denen der Standard-Konstruktor aufgerufen wird.
Der geeignete std::vector
Konstruktor wird als deklariert: der zweite Parameter als std::istream_iterator<int>
abgeleitet wird, abgeleitet als auch std::istream_iterator<int>
template <class InputIterator>
vector (InputIterator first, InputIterator last,
const allocator_type& alloc = allocator_type());
Da der erste Parametertyp und so die gleichmäßige Initialisierung Semantik angewendet werden kann. Worüber ich keine Ahnung habe ist, in welcher Reihenfolge der Typabzug geschieht. Ich würde wirklich einige Informationen dazu schätzen.
Vielen Dank im Voraus!
Funktioniert es? Wenn ja, muss zuerst der erste abgezogen werden. – Dani