Javier Luis Lopez Ответов: 2

Объявите переменную, которая будет использоваться с chrono lib внутри класса


Я сделал класс, который использует таймер.
Проблема в том, что я не могу назначить "auto" для запуска/остановки, поэтому мне нужен возвращаемый тип данных, чтобы назначить его для запуска и остановки.

Есть ли способ использовать auto using static или аналогичный, который позволяет #include < chrono> только в части. cpp?

Что я уже пробовал:

class c_clase
{
public:
	void timer(char *title=0,int data_size=1){    	stop_time= chrono::system_clock::now();double us=(double) chrono::duration_cast<chrono::microseconds>(stop_time - start_time).count();	if (title) printf("%s time = %7lgms = %7lg MOPs\n",title,(double) us*1e-3, (double)data_size/us); start_time= chrono::system_clock::now(); }
private:
	std::chrono::time_point<std::chrono::system_clock> start_time,stop_time;
};

2 Ответов

Рейтинг:
14

Jochen Arndt

Тип такой std::chrono::system_clock::time_point.


Javier Luis Lopez

Спасибо, я обновил его, но с помощью
СТД::серии Chrono::time_point&ЛТ;СТД::хроно::system_clock&ГТ; если ошибки не появились

Jochen Arndt

Я тем временем проверил его с помощью

std::chrono::time_point<std::chrono::system_clock> 
тип и он работает здесь (как и упоминалось CPallini).

"Есть ли способ использовать auto using static или аналогичный, который позволяет #include < chrono> только в части. cpp?"

Нет, авто требует инициализатора. Хотя можно иметь статическую переменную-член класса auto, требование инициализатора подразумевает, что переменная должна быть const.

Рейтинг:
0

CPallini

Цитата:
Также пробовать:
СТД::серии Chrono::time_point&ЛТ;СТД::хроно::system_clock&ГТ; значение start_time,stop_time;
Но появились ошибки ссылок

Какие ошибки вы получили? Я попробовал. Он прекрасно компилируется (один раз null_char был удален из кода).


Javier Luis Lopez

Это было связано с тем, что #include < chrono> не был добавлен в код .hpp, потому что я пытаюсь писать includes только в .cpp или в более сложном проекте, как показано ниже:
https://photos.google.com/photo/AF1QipOtS9iHdhEHSJPpKOKrvy6X6ukVN2rETHklez1b

Спасибо, по крайней мере, я удалил null_char; в коде