0

ページ

http://www.boost.org/doc/libs/1_42_0/doc/html/date_time/gregorian.html#date_construction

この種の呼び出しでBoost日付を初期化できることを説明します。

date d(2002, Jan, 10);

しかし、私がそれを試みると、コンパイラは「Jan」を知りません。

それは動作します:

date d(2002, 1, 10);

編集:

#include <boost/date_time/gregorian/gregorian.hpp>
..
{
    using namespace boost::gregorian;

    date limit_date(2010,Apr,1);
    date fake_date(2010,2,1);

    if (fake_date>limit_date)
    {
        ...
    }
}
4

2 に答える 2

0

必要な名前空間が含まれていない可能性がありますか? コード全体を投稿していないため、どれが正確かはわかりませんが、次のようなものであると推測できます。

using namespace boost::gregorian;

また

using namespace boost::date_time;

アップデート:

ヤンの定義:

namespace boost {
namespace date_time {

  //! An enumeration of weekday names
  enum weekdays {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday};

  //! Simple enum to allow for nice programming with Jan, Feb, etc
  enum months_of_year {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,NotAMonth,NumMonths};

} } //namespace date_time
于 2010-02-18T17:04:10.070 に答える
0

OK、(ばかげた) 解決策を見つけました: date_time を自分のライブラリにリンクするのを忘れました...

boost::date_time の一部は明示的なリンクを必要としないため、機能しました。そういうわけで、私はこの方法を調べませんでした。

Jan の助けと enum に感謝します!

于 2010-02-19T10:17:31.833 に答える