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


Ответы (0 шт):