使用声明别名时出错

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>;

ClockTimePoint 按预期工作,但最后一个 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); }