15
我編寫了以下函數以使用boost.date_time來獲取日期/時間字符串。所有權/刪除區域設置(std :: locale)的方面
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();
}
我不得不對facet
對象的所有權/ delete
「ING一個簡單的問題。 std::locale's constructor沒有明確說明facet
的所有權/ delete
。嘗試使用shared_ptr
包裝和堆棧分配版本facet
- 這兩個版本都導致了seg-fault。此外,通過valgrind運行上述功能沒有顯示任何泄漏(這可能意味着區域或流正在照顧delete
'ing),但我只想清楚,我在這裏做的是正確的事情。謝謝。
太棒了!謝謝。 [RTFM](http://www.cplusplus.com/reference/std/locale/locale/facet/),嗯?! ;) – 2011-03-17 17:48:10
不要覺得不好,我問過同樣類型的問題! – rcollyer 2011-03-17 19:23:27
哇,我希望他們會重新訪問標準庫的這部分與出現C + + 11 .. – Zac 2013-10-02 19:02:12