【发布时间】:2015-12-05 07:06:51
【问题描述】:
谁能告诉我从流中读取boost::chrono::duration 时支持哪些格式?我没有找到任何关于此的文档。
我阅读了标题并从那里获得了一些信息 - 但我并不完全理解它。
一个非常小的测试程序:
#define BOOST_CHRONO_VERSION 2
#include <boost/chrono.hpp>
#include <boost/chrono/chrono_io.hpp>
#include <iostream>
#include <chrono>
using namespace boost::chrono;
int main() {
boost::chrono::seconds tp1;
std::cin >> tp1;
std::cout << symbol_format << tp1 << std::endl;
}
当我在适当的标题中找到一些单位时,它运作良好:
$ echo "4 seconds" | ./a.out
4 s
$ echo "6 minutes" | ./a.out
360 s
$ echo "2 h" | ./a.out
7200 s
我想要做的,是一些组合的方法——这是行不通的:
1 minute 30 seconds
1:30 minutes
1.5 minutes
2 h 6 min 24 seconds
对我来说,解析在第一个单元之后直接停止。我尝试了一些不同的分隔符(如':'、','、...)但没有成功。
两个问题:
- 这种组合/扩展的传入
boost::chrono::duration可能吗?如果有,怎么做? - 如果我正确理解了 boost 标头,一分钟可以表示为“min”或“minute”,一秒可以表示为“s”或“second”,但不能表示为“sec”。谁能指出我支持的缩写的一些文档? (看起来这不是那么简单。)
【问题讨论】: