日期库而不使用名称空间

时间:2019-03-11 08:16:45

标签: c++ date namespaces

此示例使用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 ...

1 个答案:

答案 0 :(得分:1)

数字文字运算符'operator“” _ y“在名称空间'date'中声明。

您可以使用“使用命名空间日期”或“使用命名空间日期:: literals”

更多信息:How to refer to user defined literal operator inside a namespace?