使用声明别名时出错
Error in declaring an alias with using
我想创建别名以便更轻松地使用 chrono
方法。
所以我宣布了那些:
using Clock = std::chrono::system_clock;
using TimePoint = std::chrono::time_point<Clock>;
using DurationCast = std::chrono::duration_cast<Clock::duration>;
Clock
和 TimePoint
按预期工作,但最后一个 DurationCast
给我一个错误:
expected a type
expected ';' after alias declaration
现在我不确定我做错了什么?
std::chrono::duration_cast
是函数,不是类型。您可以将其包装在函数或 lambda 中:
template <class D>
static auto DurationCast(D d)
{ return std::chrono::duration_cast<Clock::duration>(d); }
我想创建别名以便更轻松地使用 chrono
方法。
所以我宣布了那些:
using Clock = std::chrono::system_clock;
using TimePoint = std::chrono::time_point<Clock>;
using DurationCast = std::chrono::duration_cast<Clock::duration>;
Clock
和 TimePoint
按预期工作,但最后一个 DurationCast
给我一个错误:
expected a type
expected ';' after alias declaration
现在我不确定我做错了什么?
std::chrono::duration_cast
是函数,不是类型。您可以将其包装在函数或 lambda 中:
template <class D>
static auto DurationCast(D d)
{ return std::chrono::duration_cast<Clock::duration>(d); }