如何确定std :: chrono :: monotonic_clock是否可用?

Vic*_*iba 5 c++ clock c++11

C++ 0x N3092声明monotonic_clock是可选的:

20.10.5.2类monotonic_clock [time.clock.monotonic]

  1. 类monotonic_clock的对象表示time_point的值随着物理时间的推移而永不减少的时钟.如果system_clock :: is_monotonic为true,monotonic_clock可能是system_clock的同义词.

  2. 类monotonic_clock是有条件支持的.

我可以使用SFINAE或其他技术来定义特征类来确定是否定义了monotonic_clock?

如果没有,是否应该有一个标准的宏来指示monotonic_clock是否可用?

Ant*_*ams 3

没有完全符合标准的方法来检测std::chrono::monotonic_clock. 从 comp.std.c++ 的讨论中可以明显看出,存在一些不符合标准的技术,涉及在名称空间中声明新代码std

  • 一般来说,这对有条件支持的功能没有帮助,但实际上“monotonic_clock”可能会被重命名为“steady_clock”,并且是必需的。请参阅http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3128.html (2认同)