C ++ 0x N3092声明monotonic_clock是可选的:
20.10.5.2班级monotonic_clock [time.clock.monotonic]
类monotonic_clock的对象表示time_point的值随着物理时间的推移而不会减少的时钟。如果system_clock :: is_monotonic为true,monotonic_clock可能是system_clock的同义词。
- 醇>
有条件地支持班级monotonic_clock。
我可以使用SFINAE或其他技术定义特征类来确定是否定义了monotonic_clock?
如果没有,是否应该有一个标准宏来指示monotonic_clock是否可用?
答案 0 :(得分:3)
没有完全符合标准的方法来检测std::chrono::monotonic_clock
的存在。从对comp.std.c ++的讨论中可以明显看出,有一些非标准符合技术涉及在命名空间std
中声明新代码。
答案 1 :(得分:0)
查看BOOST_MPL_HAS_XXX_TRAIT_DEF并查看帖子compile time member detection。我知道VisualStudio有一个非标准的关键字__if_exists
,但AFAIK在其他编译器上不可用。