Мне кажется, что я немного с ума схожу с этим, но это просто не имеет смысла для меня. На мой взгляд, если я вычитаю минимальную точку времени из любой точки времени, возвращаемой вызовом 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)