一种类型特征,用于确定指定类型是否满足时钟要求。
语法
template<class T> struct is_clock; // C++20
帮助程序变量模板
template<class T> inline constexpr bool is_clock_v = is_clock<T>::value; // C++20
参数
T
要测试的类型。
成员
| 名称 | 描述 |
|---|---|
value |
指示 T 是否满足时钟要求。 |
operator () |
返回 value。 |
operator bool |
返回 value。 |
备注
时钟具有 rep、periodduration、time_point、is_steady 和 now() 函数。
有关 C++17 时钟要求的更多详细信息,请参阅 Cpp17Clock 要求。
以下代码可以正常运作,因为 is_clock 派生自 Cpp17UnaryTypeTrait,后者派生自 integral_constant。 其中 value_type 为 bool,type 是 std::integral_constant<bool, value> 的来源。
示例
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
is_clock<system_clock> ic;
std::cout << std::boolalpha << ic.value << ", " << ic() << ", " << (bool)ic;
}
true, true, true
要求
标头:<chrono>
命名空间:std::chrono
编译器选项: /std:c++latest
Value
获取指定类型是否满足时钟要求。
static constexpr T value;
返回值
如果指定类型满足时钟要求,则为 true。 否则为 false。
operator()
constexpr value_type operator()() const noexcept
返回 value,即指定类型是否满足时钟要求。
返回值
如果指定类型满足时钟要求,则为 true。 否则为 false。
operator bool
constexpr operator value_type() const noexcept
返回 value,即指定类型是否满足时钟要求。
返回值
如果指定类型满足时钟要求,则为 true。 否则为 false。