特定
template<class T>
struct TimeData
{
T duration;
}
Run Code Online (Sandbox Code Playgroud)
static_assert如果T是某种类型的,我如何编写一个检查编译时间std::chrono::duration?记住std::chrono::duration是一个模板类.
换句话说,我如何检查类型是否是模板类的实例化?
Dei*_*Dei 10
您可以实现自己的类型特征来检查a chrono::duration.像这样的东西:
template<class T>
struct is_duration : std::false_type {};
template<class Rep, class Period>
struct is_duration<std::chrono::duration<Rep, Period>> : std::true_type {};
Run Code Online (Sandbox Code Playgroud)
然后你可以:
static_assert(is_duration<T>::value, "must be duration");
Run Code Online (Sandbox Code Playgroud)