auto и файловый поток
Нужна помощь касательно работы auto. Почему компилятор определяет тип fileLogger как ofstream, а не ofstream&? Ведь в функции getLogger мы возвращаем ссылку на поток.
auto fileLogger = getLogger("log.txt"); // Log to file with name log.txt
// File output: 23.02.2020 18:06:06: Running a thread
fileLogger << "Running a thread";
ofstream& getLogger(const char* file, const char* prefix = "")
{
static ofstream logfile (file);
logfile << now->tm_mday << "/" << now->tm_mon << "/" << 1900 + now->tm_year;
logfile << ", " << now->tm_hour << ":" << now->tm_min << ":" << now->tm_sec << ": ";
return logfile;
}
В таком виде программа не выполняется. При явном указании типа ofstream&, программа выполняется и в файл log.txt выводится 23.02.2020 18:06:06: Running a thread