#826 Build fix for ambiguity with >= libc++ 17

This commit is contained in:
Martin Zink authored and Howard Hinnant committed 2024-05-10 16:26:43 -04:00
1 parent 6b1c1b8b3a
commit 8a93211679
23 files changed
+127 -106

No files matched your search

+21 -21
View File
@@ -32,86 +32,86 @@ main()
using namespace date;
using namespace std::chrono;
std::ostringstream os;
os << format("%C", sys_days{jun/1/20001});
os << date::format("%C", sys_days{jun/1/20001});
assert(os.str() == "200");
os.str("");
os << format("%C", sys_days{jun/1/20000});
os << date::format("%C", sys_days{jun/1/20000});
assert(os.str() == "200");
os.str("");
os << format("%C", sys_days{jun/1/19999});
os << date::format("%C", sys_days{jun/1/19999});
assert(os.str() == "199");
os.str("");
os << format("%C", sys_days{jun/1/2001});
os << date::format("%C", sys_days{jun/1/2001});
assert(os.str() == "20");
os.str("");
os << format("%C", sys_days{jun/1/2000});
os << date::format("%C", sys_days{jun/1/2000});
assert(os.str() == "20");
os.str("");
os << format("%C", sys_days{jun/1/1999});
os << date::format("%C", sys_days{jun/1/1999});
assert(os.str() == "19");
os.str("");
os << format("%C", sys_days{jun/1/101});
os << date::format("%C", sys_days{jun/1/101});
assert(os.str() == "01");
os.str("");
os << format("%C", sys_days{jun/1/100});
os << date::format("%C", sys_days{jun/1/100});
assert(os.str() == "01");
os.str("");
os << format("%C", sys_days{jun/1/99});
os << date::format("%C", sys_days{jun/1/99});
assert(os.str() == "00");
os.str("");
os << format("%C", sys_days{jun/1/1});
os << date::format("%C", sys_days{jun/1/1});
assert(os.str() == "00");
os.str("");
os << format("%C", sys_days{jun/1/0});
os << date::format("%C", sys_days{jun/1/0});
assert(os.str() == "00");
os.str("");
os << format("%C", sys_days{jun/1/-1});
os << date::format("%C", sys_days{jun/1/-1});
assert(os.str() == "-01");
os.str("");
os << format("%C", sys_days{jun/1/-99});
os << date::format("%C", sys_days{jun/1/-99});
assert(os.str() == "-01");
os.str("");
os << format("%C", sys_days{jun/1/-100});
os << date::format("%C", sys_days{jun/1/-100});
assert(os.str() == "-01");
os.str("");
os << format("%C", sys_days{jun/1/-101});
os << date::format("%C", sys_days{jun/1/-101});
assert(os.str() == "-02");
os.str("");
os << format("%C", sys_days{jun/1/-1999});
os << date::format("%C", sys_days{jun/1/-1999});
assert(os.str() == "-20");
os.str("");
os << format("%C", sys_days{jun/1/-2000});
os << date::format("%C", sys_days{jun/1/-2000});
assert(os.str() == "-20");
os.str("");
os << format("%C", sys_days{jun/1/-2001});
os << date::format("%C", sys_days{jun/1/-2001});
assert(os.str() == "-21");
os.str("");
os << format("%C", sys_days{jun/1/-19999});
os << date::format("%C", sys_days{jun/1/-19999});
assert(os.str() == "-200");
os.str("");
os << format("%C", sys_days{jun/1/-20000});
os << date::format("%C", sys_days{jun/1/-20000});
assert(os.str() == "-200");
os.str("");
os << format("%C", sys_days{jun/1/-20001});
os << date::format("%C", sys_days{jun/1/-20001});
assert(os.str() == "-201");
}
+1 -2
View File
@@ -29,12 +29,11 @@ void
test(const std::string& in_fmt, const std::string& input,
const std::string& out_fmt, const std::string& output)
{
using namespace date;
std::istringstream in{input};
T t;
in >> parse(in_fmt, t);
assert(!in.fail());
auto s = format(out_fmt, t);
auto s = date::format(out_fmt, t);
assert(s == output);
}
+12 -10
View File
@@ -40,39 +40,41 @@ main()
using namespace date;
using namespace std::chrono;
std::ostringstream os;
os << format("%F %T", sys_days{jan/1/year::min()});
using date::year, date::last;
os << date::format("%F %T", sys_days{jan/1/year::min()});
assert(os.str() == "-32767-01-01 00:00:00");
os.str("");
os << format("%F %T", sys_days{dec/last/year::max()});
os << date::format("%F %T", sys_days{dec/last/year::max()});
assert(os.str() == "32767-12-31 00:00:00");
os.str("");
os << format("%F %T", sys_days{dec/last/year::max()} + hours{23} + minutes{59} +
os << date::format("%F %T", sys_days{dec/last/year::max()} + hours{23} + minutes{59} +
seconds{59} + microseconds{999999});
assert(os.str() == "32767-12-31 23:59:59.999999");
os.str("");
os << format("%Y-%m-%d %H:%M:%S", sys_days{jan/1/year::min()});
os << date::format("%Y-%m-%d %H:%M:%S", sys_days{jan/1/year::min()});
assert(os.str() == "-32767-01-01 00:00:00");
os.str("");
os << format("%Y-%m-%d %H:%M:%S", sys_days{dec/last/year::max()});
os << date::format("%Y-%m-%d %H:%M:%S", sys_days{dec/last/year::max()});
assert(os.str() == "32767-12-31 00:00:00");
os.str("");
os << format("%Y-%m-%d %H:%M:%S", sys_days{dec/last/year::max()} + hours{23} +
os << date::format("%Y-%m-%d %H:%M:%S", sys_days{dec/last/year::max()} + hours{23} +
minutes{59} + seconds{59} + microseconds{999999});
assert(os.str() == "32767-12-31 23:59:59.999999");
os.str("");
os << format("%F %T", sys_days{jan/1/year::min()} + microfortnights{1});
os << date::format("%F %T", sys_days{jan/1/year::min()} + microfortnights{1});
assert(os.str() == "-32767-01-01 00:00:01.2096");
os.str("");
os << format("%F %T", sys_days{dec/last/year::max()} + microfortnights{1});
os << date::format("%F %T", sys_days{dec/last/year::max()} + microfortnights{1});
assert(os.str() == "32767-12-31 00:00:01.2096");
os.str("");
os << format("%F", jan/1/year::min());
os << date::format("%F", jan/1/year::min());
assert(os.str() == "-32767-01-01");
os.str("");
os << format("%F", dec/last/year::max());
os << date::format("%F", dec/last/year::max());
assert(os.str() == "32767-12-31");
os.str("");
}
+22 -22
View File
@@ -32,90 +32,90 @@ main()
using namespace date;
using namespace std::chrono;
std::ostringstream os;
os << format("%y", sys_days{jun/1/20001});
os << date::format("%y", sys_days{jun/1/20001});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/20000});
os << date::format("%y", sys_days{jun/1/20000});
assert(os.str() == "00");
os.str("");
os << format("%y", sys_days{jun/1/19999});
os << date::format("%y", sys_days{jun/1/19999});
assert(os.str() == "99");
os.str("");
os << format("%y", sys_days{jun/1/2001});
os << date::format("%y", sys_days{jun/1/2001});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/2000});
os << date::format("%y", sys_days{jun/1/2000});
assert(os.str() == "00");
os.str("");
os << format("%y", sys_days{jun/1/1999});
os << date::format("%y", sys_days{jun/1/1999});
assert(os.str() == "99");
os.str("");
os << format("%y", sys_days{jun/1/101});
os << date::format("%y", sys_days{jun/1/101});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/100});
os << date::format("%y", sys_days{jun/1/100});
assert(os.str() == "00");
os.str("");
os << format("%y", sys_days{jun/1/99});
os << date::format("%y", sys_days{jun/1/99});
assert(os.str() == "99");
os.str("");
os << format("%y", sys_days{jun/1/1});
os << date::format("%y", sys_days{jun/1/1});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/0});
os << date::format("%y", sys_days{jun/1/0});
assert(os.str() == "00");
os.str("");
os << format("%y", sys_days{jun/1/-1});
os << date::format("%y", sys_days{jun/1/-1});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/-99});
os << date::format("%y", sys_days{jun/1/-99});
assert(os.str() == "99");
os.str("");
os << format("%y", sys_days{jun/1/-100});
os << date::format("%y", sys_days{jun/1/-100});
assert(os.str() == "00");
os.str("");
os << format("%y", sys_days{jun/1/-101});
os << date::format("%y", sys_days{jun/1/-101});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/-1999});
os << date::format("%y", sys_days{jun/1/-1999});
assert(os.str() == "99");
os.str("");
os << format("%y", sys_days{jun/1/-2000});
os << date::format("%y", sys_days{jun/1/-2000});
assert(os.str() == "00");
os.str("");
os << format("%y", sys_days{jun/1/-2001});
os << date::format("%y", sys_days{jun/1/-2001});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/-19999});
os << date::format("%y", sys_days{jun/1/-19999});
assert(os.str() == "99");
os.str("");
os << format("%y", sys_days{jun/1/-20000});
os << date::format("%y", sys_days{jun/1/-20000});
assert(os.str() == "00");
os.str("");
os << format("%y", sys_days{jun/1/-20001});
os << date::format("%y", sys_days{jun/1/-20001});
assert(os.str() == "01");
os.str("");
os << format("%y", sys_days{jun/1/year::min()});
os << date::format("%y", sys_days{jun/1/date::year::min()});
assert(os.str() == "67");
}