Как преобразовать `std :: fileystem :: file_time_type` в строку с помощью GCC 9C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как преобразовать `std :: fileystem :: file_time_type` в строку с помощью GCC 9

Сообщение Anonymous »

Я пытаюсь отформатировать время изменения файла в качестве строки (UTC). Следующий код компилируется с GCC 8, но не GCC 9. < /p>

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 

namespace fs = std::filesystem;

int main() {
fs::file_time_type file_time = fs::last_write_time(__FILE__);
std::time_t tt = decltype(file_time)::clock::to_time_t(file_time);
std::tm *gmt = std::gmtime(&tt);
std::stringstream buffer;
buffer , используя C ++ 17 и C ++ 20, но ни один из них не работал. < /p>

$ g++-9 -std=c++2a -Wall -Wextra -lstdc++fs file_time_type.cpp

file_time_type.cpp: In function ‘int main()’:
file_time_type.cpp:12:50: error: ‘to_time_t’ is not a member of ‘std::chrono::time_point::clock’ {aka ‘std::filesystem::__file_clock’}
12 |     std::time_t tt = decltype(file_time)::clock::to_time_t(file_time);
|                                                  ^~~~~~~~~
Пример на https://en.cppreference.com/w/cpp/files ... _time_type упоминает, что он не работает на GCC 9, потому что C ++ 20 допускает портативный вывод, но я не знаю, как его работать. Разве это не должно работать с GCC 9, если я просто не использую C ++ 20?>

Подробнее здесь: https://stackoverflow.com/questions/567 ... sing-gcc-9
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»