я написала функцию с почти что таким же содержанием https://pastebin.com/kE873VMH. Однако почему то компилятор (g++ 9.2.0 -std=c++17) говорит мне, что он не может вывести шаблонный аргумент (class template argument deduction failed) в первой строчке функции.
Полный вывод компилятора: https://pastebin.com/Y2Gaxg8z.
Я не знаю, что я делаю не так; я вообще ожидала, что он будет ругаться на ss << time;, что довольно легко исправимо...((
std::string format_time(const boost::posix_time::time_duration& time, const std::string& fmt) { boost::posix_time::time_facet *tf = new boost::posix_time::time_facet(fmt.data()); std::stringstream ss; ss.imbue(std::locale(ss.getloc(), tf)); ss << time; return ss.str(); }
https://wandbox.org/permlink/5CykZBvmGsIxmVIu
и еще, в твоем коде используется delete tf; это ошибка, деструктор std::locale уже сам вызывает delete для tf
Обсуждают сегодня