此示例使用date库,但不包含任何using namespace
:
#include <iostream>
#include <date/date.h>
//using namespace std;
//using namespace date;
int main() {
date::year_month_day startDate = 2018_y / 1 / 6;
std::cout << startDate << '\n';
return 0;
}
但不能编译, 错误:找不到数字文字运算符'operator“” _ y“
如何在不使用using namespace
的情况下使用该库?
更新:
我按如下所示更改了代码,但仍然有很多错误。
#include <iostream>
#include <date/date.h>
int main() {
date::sys_time<std::chrono::nanoseconds> tp;
std::istringstream in1{"2018-12-21 01:15:31"};
in1 >> date::parse("%F %T", td);
std::cout << tp << '\n';
return 0;
}
错误:'operator <<'不匹配(操作数类型为'std :: ostream'{aka'std :: basic_ostream'}和'date :: sys_time ...
答案 0 :(得分:1)
数字文字运算符'operator“” _ y“在名称空间'date'中声明。
您可以使用“使用命名空间日期”或“使用命名空间日期:: literals”
更多信息:How to refer to user defined literal operator inside a namespace?