У меня есть приложение, которое использует таймеры времени asio. Остальная часть приложения использует конструкторы std::chrono
для своих значений времени, и неудобно использовать boost::posix_time
только для материала, который касается asio. Я хотел бы использовать std::chrono
во всем приложении, если могу, для согласованности, удобочитаемости и т.д.
Мне кажется, что ответ будет включать использование шаблона таймера:
typedef boost::asio::basic_deadline_timer<std::chrono::system_clock::time_point>
my_deadline_timer_type;
my_deadline_timer_type a_timer(io_service);
За исключением того, что это плохо срабатывает во время компиляции... много ошибок, большинство из которых схожи с этим:
/opt/arm/include/boost/asio/deadline_timer_service.hpp:51:43: ошибка: недопустимое использование неполного типа 'boost:: asio:: deadline_timer_service → , boost:: asio:: time_traits → → :: traits_type {aka struct boost:: asio:: time_traits → > }
Итак, похоже, что мне может понадобиться создать новый traits_type
и объявить deadline_timer_service
, используя его, но я не уверен, как/где. Я должен поверить, что эта проблема решена. Я использую g++ 4.7.3 с -std = С++ 11 в linux, кросс-компиляция в руку.