【发布时间】:2010-06-07 01:38:51
【问题描述】:
目前我正在尝试读取格式化的时间字符串并从中创建持续时间。我目前正在尝试使用 boost date_time time_duration 类来读取和存储值。
boost date_time 提供了一个方法 time_duration duration_from_string(std::string),它允许从时间字符串创建 time_duration,它接受格式正确的字符串 ("[-]h[h][:mm][:ss][.fff]".)。
现在,如果您使用格式正确的时间字符串,此方法可以正常工作。但是,如果您提交无效的内容,例如“ham_sandwich”或“100”,那么您将收到无效的 time_duration。具体来说,如果您尝试将其传递给标准输出流,则会发生断言。
我的问题是:有谁知道如何测试 boost time_duration 的有效性?如果失败了,您能否建议另一种读取时间字符串并从中获取持续时间的方法?
注意:我已经尝试过time_duration提供的显而易见的测试方法; is_not_a_date_time()、is_special() 等,他们没有发现有问题。
使用 boost 1.38.0
【问题讨论】: