Correction after code review

This commit is contained in:
Ivan Pizhenko 2015-02-12 16:22:00 +02:00
parent 50802176f3
commit 0e64070a33
2 changed files with 11 additions and 17 deletions

9
tz.cpp
View File

@ -768,11 +768,7 @@ operator>>(std::istream& is, MonthDayTime& x)
throw std::runtime_error(std::string("bad operator: ") + c + c2
+ std::to_string(d));
x.type_ = c == '<' ? MonthDayTime::lteq : MonthDayTime::gteq;
#if !defined(_MSC_VER) || (_MSC_VER >= 1900)
x.u = {date::month(m)/d, date::weekday(dow)};
#else
x.u = MonthDayTime::U(date::month(m)/d, date::weekday(dow));
#endif
x.u = MonthDayTime::pair{ date::month(m) / d, date::weekday(dow) };
}
else
throw std::runtime_error(std::string("bad operator: ") + c);
@ -1370,8 +1366,7 @@ find_previous_rule(const Rule* r, date::year y)
// [first, last) all have the same name
static
std::pair<const Rule*, date::year>
find_next_rule(const Rule* first_rule, const Rule* last_rule, const Rule* r,
date::year y)
find_next_rule(const Rule* first_rule, const Rule* last_rule, const Rule* r, date::year y)
{
using namespace date;
if (y == r->ending_year())

View File

@ -35,7 +35,11 @@ private:
{
#if defined(_MSC_VER) && (_MSC_VER < 1900)
pair() : month_day_(date::jan / 1), weekday_(0U) {}
pair(const date::month_day& month_day, const date::weekday& weekday)
: month_day_(month_day), weekday_(weekday) {}
#endif
date::month_day month_day_;
date::weekday weekday_;
};
@ -44,17 +48,17 @@ private:
Type type_{month_day};
#if defined(_MSC_VER) && (_MSC_VER < 1900)
struct U
#else
#if !defined(_MSC_VER) || (_MSC_VER > 1900)
union U
#else
struct U
#endif
{
date::month_day month_day_;
date::month_weekday_last month_weekday_last_;
pair month_day_weekday_;
#if !defined(_MSC_VER) && (_MSC_VER >= 1900)
#if !defined(_MSC_VER) || (_MSC_VER >= 1900)
U() : month_day_{date::jan/1} {}
#else
U() :
@ -62,12 +66,7 @@ private:
month_weekday_last_(date::month(0U), date::weekday_last(date::weekday(0U)))
{}
U(const date::month_day& month_day,
const date::weekday& weekday) :
month_day_(month_day),
month_weekday_last_(date::month(0U), date::weekday_last(weekday))
{}
#endif // !defined(_MSC_VER) && (_MSC_VER >= 1900)
#endif // !defined(_MSC_VER) || (_MSC_VER >= 1900)
U& operator=(const date::month_day& x);
U& operator=(const date::month_weekday_last& x);