Я чувствую, что схожу с ума с этим, но это просто не имеет для меня смысла. На мой взгляд, если я вычту минимальный момент времени из любого момента времени, возвращаемого вызовом now()
, я всегда должен получить положительную продолжительность, но этого не происходит.
#include <chrono>
#include <iostream>
typedef std::chrono::steady_clock myclock;
int main(int argc, char **argv) {
myclock::time_point min = myclock::time_point::min();
myclock::time_point now = myclock::now();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(now - min).count();
std::cout << millis << std::endl;
}
Почему это печатает отрицательное целое число, а не положительное целое число? (clang 3.3 или g++ 4.8.1)