相关疑难解决方法(0)

谁负责删除方面?

我有一个函数,它使用Boost.DateTime库来生成当前的GMT/UTC日期和时间字符串(实例).

std::string get_curr_date() {
    auto date = boost::date_time::second_clock<boost::posix_time::ptime>::universal_time();

    boost::posix_time::time_facet* facet = new boost::posix_time::time_facet("%a, %d %b %Y %H:%M:%S GMT");

    std::ostringstream os;
    os.imbue(std::locale(os.getloc(), facet));
    os << date;

    return os.str();
}
Run Code Online (Sandbox Code Playgroud)

这主要基于Boost.DateTime的示例:

//example to customize output to be "LongWeekday LongMonthname day, year"
//                                  "%A %b %d, %Y"
date d(2005,Jun,25);
date_facet* facet(new date_facet("%A %B %d, %Y"));
std::cout.imbue(std::locale(std::cout.getloc(), facet));
std::cout << d << std::endl;
// "Saturday June 25, 2005"
Run Code Online (Sandbox Code Playgroud)

我的代码工作得很好,但现在我感到不安,因为这些特殊的行包含new:

  • boost::posix_time::time_facet* facet = new boost::posix_time::time_facet("%a, %d %b %Y %H:%M:%S …

c++ locale c++11

26
推荐指数
2
解决办法
4636
查看次数

标签 统计

c++ ×1

c++11 ×1

locale ×1