C++ 0x N3092 указывает, что monotonic_clock является дополнительным:
20.10.5.2 Класс monotonic_clock [time.clock.monotonic]
Объекты класса monotonic_clock представляют часы, для которых никогда не уменьшаются значения time_point, когда физическое время совершенствуется. monotonic_clock может быть синонимом для system_clock если system_clock:: is_monotonic верен.
Класс monotonic_clock условно поддерживается.
Я могу использовать SFINAE или другую технику для определения класса черт, чтобы определить, определяется ли monotonic_clock?
В противном случае не должен там быть стандартный макрос, который указывает, доступен ли monotonic_clock?
Взгляните на BOOST_MPL_HAS_XXX_TRAIT_DEF и просмотрите поток определение члена во время компиляции . Я знаю, что VisualStudio имеет нестандартное ключевое слово __ if_exists
, но, AFAIK, оно недоступно в других компиляторах.