尝试在 C++ 中为 chrono 创建函数时没有构造函数实例
No instance of constructor when trying to make a function for chrono in C++
我需要计算算法的运行时间。我正在使用以下结构来执行此操作:
auto start = std::chrono::stedy_clock::now();
//code
auto end = std::chrono::stedy_clock::now();
auto diff = end - start;
std::cout << std::chrono::duration <double, std::milli> (diff).count() << " ms" << endl;
但是,由于我有多种算法需要测试,所以我决定制作以下功能:
std::chrono::time_point<std::chrono::steady_clock> time_now()
{
return std::chrono::steady_clock::now();
}
void print_time(std::ostream& out, std::chrono::_V2::steady_clock differnce)
{
out << std::chrono::duration <double, std::micro> (differnce).count() << std::endl;
}
我的打印函数 vscode 出现以下错误:
no instance of constructor "std::chrono::duration<_Rep, _Period>::duration [with _Rep=double, _Period=std::micro]" matches the argument list -- argument types are: (std::chrono::_V2::steady_clock)
知道我为什么会遇到这个问题以及如何解决它吗?
谢谢!
您向 print_time
函数传递了错误的类型。该函数正在声明中,但是当您将持续时间传递给它时,编译器会尝试将 duration
转换为 clock
这没有意义,这就是您获得该构造函数的原因留言。
一些时间类型是:
clock(s)
我们可以使用 now()
查询特定 time_points
的各种内容
time_points
代表一个特定的时刻。
duration
相差time_points
应该是这样的:
void print_time(std::ostream& out,
std::chrono::duration<double, std::micro> delta)
{
out << delta.count() << std::endl;
}
我需要计算算法的运行时间。我正在使用以下结构来执行此操作:
auto start = std::chrono::stedy_clock::now();
//code
auto end = std::chrono::stedy_clock::now();
auto diff = end - start;
std::cout << std::chrono::duration <double, std::milli> (diff).count() << " ms" << endl;
但是,由于我有多种算法需要测试,所以我决定制作以下功能:
std::chrono::time_point<std::chrono::steady_clock> time_now()
{
return std::chrono::steady_clock::now();
}
void print_time(std::ostream& out, std::chrono::_V2::steady_clock differnce)
{
out << std::chrono::duration <double, std::micro> (differnce).count() << std::endl;
}
我的打印函数 vscode 出现以下错误:
no instance of constructor "std::chrono::duration<_Rep, _Period>::duration [with _Rep=double, _Period=std::micro]" matches the argument list -- argument types are: (std::chrono::_V2::steady_clock)
知道我为什么会遇到这个问题以及如何解决它吗?
谢谢!
您向 print_time
函数传递了错误的类型。该函数正在声明中,但是当您将持续时间传递给它时,编译器会尝试将 duration
转换为 clock
这没有意义,这就是您获得该构造函数的原因留言。
一些时间类型是:
clock(s)
我们可以使用now()
查询特定 time_points
代表一个特定的时刻。duration
相差time_points
time_points
的各种内容
应该是这样的:
void print_time(std::ostream& out,
std::chrono::duration<double, std::micro> delta)
{
out << delta.count() << std::endl;
}