2013-10-16 59 views
14

我正在研究一个软件设计,我想在其中使用Boost.Units。我想使用的一些单位表示时间,但是,由于它们是标准的,我倾向于使用C++ 11 std::chrono单位。std :: chrono&Boost.Units

我想知道在Boost.Unitschrono之间是否有任何清洁整合,或者我是否必须通过在类型之间复制标量值来编写我自己的转换器并丢失类型安全性。

有没有这个问题的最佳做法?

+2

我最近开始使用'boost :: units'。 AFAICT在那里与时间或'boost :: chrono'没有关系。我认为'boost :: units'和'boost :: chrono'背后的概念不同。然而,你可以看看'boost :: date_time',它建立在(或重新实现)'std :: chrono'上。在那里你会发现许多类处理任何可想象的时间的类。 – user23573

+0

也许将标量包装在一个新类中,从而在提供'getAs [Type]'函数时遮蔽了标量?一个失败点比许多更好。 – Conduit

+0

对于那些来这里下面的问题是相关的,但略有不同:https://stackoverflow.com/questions/4910373/interoperability-between-boostdate-time-and-stdchrono –

回答

0

这可能不是一个完美的答案,但boost :: chrono提供了一个如何将它与它们在example itself (devel)version at time of writing)中定义的单位系统集成的例子。

基本上,基于boost.units examples for quaternion and complex numbers应该可以为std :: chrono单元定义相同的函数,尽管它可能需要用于新的用户定义单元的附加代码。

也有一个类似的,虽然稍有不同question regarding boost::date_time其中也可能有有用的信息。

对不起,这不是一个完整的答案,但也许这将是一个开始别人可以完成!

相关问题