提问人: 提问时间:4/9/2021 更新时间:4/9/2021 访问量:77
如果在命名空间中定义,为什么找不到 operator<<?
Why is operator<< not found if defined in namespace?
问:
在下面的代码中,我在尝试打印到控制台时遇到错误。如果我搬到外面,它就会消失。为什么会这样?我必须在全局命名空间中定义我的函数吗?time_point
operator<<
my_namespace
operator<<
#include <iostream>
#include <chrono>
#include <date/date.h>
namespace my_namespace {
std::ostream &operator<<(std::ostream &os,
const std::chrono::system_clock::time_point &time_point) {
return os << date::format(
"%F %T\n",
std::chrono::time_point_cast<std::chrono::milliseconds>(time_point));
}
}
int main() {
std::chrono::system_clock::time_point time_point{
std::chrono::milliseconds{1000}};
std::cout << time_point;
}
答: 暂无答案
评论
std
operator<<
std::cout << (my_namespace::operator<< time_point) << std::endl;