Я написал следующую функцию для получения строки даты / времени, используя boost.date_time .
namespace bpt = boost::posix_time;
string
get_date_time_string(bpt::ptime time)
{
bpt::time_facet * facet(new bpt::time_facet);
facet->format("%Y%m%d%H%M%S");
stringstream return_value;
return_value.imbue(std::locale(std::locale::classic(), facet));
return_value << time;
return return_value.str();
}
У меня был быстрый вопрос о владении / delete
'facet
объектом. std :: locale's constructor не является явным в отношении владения / delete
'facet
.Пробовал использовать shared_ptr
-wrapped и выделять стеки версии facet
- обе из которых вызывали ошибки сегмента.Кроме того, выполнение вышеупомянутой функции через valgrind не показало каких-либо утечек (что, вероятно, подразумевает, что локаль или поток позаботились о delete
'), но я просто хотел пояснить, что здесь я поступаю правильно.Спасибо.