2016-04-13 2 views
0

Как я могу сравнить, если разница между двумя точками времени сглажена, чем определенное время фиксации? Я могу измерить время, но мне не удается создать константу со временем, когда я захочу.std :: chrono create constant time laps

До сих пор у меня есть следующий код:

std::chrono::steady_clock::time_point t1= std::chrono::steady_clock::now(); 
... 
std::chrono::steady_clock::time_point t2= std::chrono::steady_clock::now(); 
auto elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(t2- t1); 

я думал создать постоянную и сравнить следующим образом:

std::chrono::milliseconds maxTime; 
maxTime = 5000; 
if(elapsedTime > maxTime){ 
    //.... 
} 

Назначение maxTime не работает. Любая идея, как это сделать, не передавая целое число через конструктор)?

+0

Вы можете разместить весь код и компиляции ошибка? Размещенные фрагменты компилируются на Coding Grounds (http://www.tutorialspoint.com/compile_cpp11_online.php). Вы включили '' и правильные ключи компилятора (' -std = C++ 11' в GCC)? –

+0

ah shit ... я модифицировал, чтобы ответить, и это работает ... проблема в том, что я не использовал конструктор, но я попытался инициализировать с помощью =. Знаете ли вы, как это сделать? Я изменяю вопрос – Stefano

+1

uhm, 'maxTime' не является' int', поэтому вы не можете назначить ему номер. try: 'maxTime = std :: chrono :: milliseconds (5000);' –

ответ

1

Вы указали maxTime как std::chrono::milliseconds - вот почему вы не можете назначить ему int. Если у вас есть миллисекунды, которые вы хотите назначить maxTime - назовем это int myAmount - используйте maxTime = std::chrono::milliseconds(myAmount);. Конечно, maxTime не может быть объявлен const.

1

Вы можете изменить ваш код:

std::chrono::steady_clock::time_point t1= std::chrono::steady_clock::now(); 
// ... 
std::chrono::steady_clock::time_point t2= std::chrono::steady_clock::now(); 
auto elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1); 
constexpr const std::chrono::milliseconds maxTime(5000); // <- this is the important change! 
if(elapsedTime > maxTime){ 
    //... 
} 
Смежные вопросы