У меня есть переменная типа long long
, представляющая момент времени в наносекундах.
Я пытаюсь обернуть его, используя std :: chrono :: time_point, но компилятор (VS 2017) доставляет мне неприятности.
вот код, который компилируется:
std::chrono::time_point<std::chrono::steady_clock> tpStart(std::chrono::nanoseconds(10ll));
std::chrono::time_point<std::chrono::steady_clock> tpEnd = std::chrono::steady_clock::now();
double d = std::chrono::duration<double>(tpEnd - tpStart).count();
Теперь, если я переключу значение 10ll
с помощью переменной, строка, вычисляющая продолжительность, не скомпилируется:
constexpr long long t = 10ll;
std::chrono::time_point<std::chrono::steady_clock> tpStart(std::chrono::nanoseconds(t));
std::chrono::time_point<std::chrono::steady_clock> tpEnd = std::chrono::steady_clock::now();
double d = std::chrono::duration<double>(tpEnd - tpStart).count();
Вот код ошибки:
ошибка C2679: двоичный файл '-': не найден оператор, который принимает правый операнд типа 'перегруженная функция' (или нет допустимого преобразования)
Есть идеи, почему это происходит? как я могу преобразовать переменную типа long long в std :: chrono :: time_point?