Pascal
Pascal

Reputation: 2214

Error in declaring an alias with using

I wanted to create aliases to make using the chrono methods easier. So I declared those:

using Clock = std::chrono::system_clock;
using TimePoint = std::chrono::time_point<Clock>;
using DurationCast = std::chrono::duration_cast<Clock::duration>;

Clock and TimePoint work as expected but the last DurationCast gives me an error:

expected a type
expected ';' after alias declaration

Now I am not sure what I did wrong?

Upvotes: 0

Views: 1274

Answers (1)

TartanLlama
TartanLlama

Reputation: 65620

std::chrono::duration_cast is a function, not a type. You could wrap it in a function or lambda:

template <class D> 
static auto DurationCast(D d)
{ return std::chrono::duration_cast<Clock::duration>(d); }

Upvotes: 2

Related Questions