2

29 分 60 秒を追加して、結果を時間で表示したいとします。

動作するように見えるものは次のとおりです。

cout <<
    static_cast<quantity<hour_base_unit::unit_type>>
    (quantity<time>{29.0 * minute_base_unit::unit_type()} + 60.0 * seconds)
    << endl;    

コンソールに次のように表示されます。

0.5 h

これは推奨されるアプローチですか?より良い、またはより慣用的な方法はありますか?

上記の例を示すプログラム全体を以下に示します。

#include <iostream>
#include <boost/units/systems/si/io.hpp>
#include <boost/units/systems/si.hpp>
#include <boost/units/base_units/metric/hour.hpp>
#include <boost/units/base_units/metric/minute.hpp>

using namespace std;
using namespace boost::units;
using namespace boost::units::si;
using namespace boost::units::metric;

int main()
{   
    cout <<
        static_cast<quantity<hour_base_unit::unit_type>>
        (quantity<time>{29.0 * minute_base_unit::unit_type()} + 60.0 * seconds)
        << endl;        

    return 0;
}
4

1 に答える 1