Come inizializzare una data Boost?
-
21-09-2019 - |
Domanda
La pagina
spiega che è possibile inizializzare un rel="nofollow Boost data con questo tipo di chiamata :
date d(2002, Jan, 10);
Ma quando provo che, il compilatore non sa 'Jan'.
E 'funziona con:
date d(2002, 1, 10);
EDIT:
#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)
{
...
}
}
Soluzione
Forse vi siete persi compreso di namespace necessario? Non posso dire quale esattamente, perché non hai postare intero codice, ma posso supporre che possa essere qualcosa di simile:
using namespace boost::gregorian;
o
using namespace boost::date_time;
Aggiornamento:
defenition di Jan:
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
Altri suggerimenti
OK, ho trovato la soluzione (sciocco): Ho appena dimenticato di collegare date_time alla mia libreria ...
Per quanto alcune parti del boost :: date_time non richiedono un collegamento esplicito, hanno lavorato. È per questo che non ha esplorato in questo modo.
Grazie Jan per aiuto e l'enumerazione!