Ho un'applicazione che utilizza i timer di scadenza asio. Il resto dell'applicazione usa i costrutti std::chrono
per i suoi valori temporali, e ci si sente a disagio nell'usare boost::posix_time
solo per le cose che toccano asio. Mi piacerebbe usare std::chrono
in tutta l'applicazione, se posso, per coerenza, leggibilità, eccboost :: asio :: deadline_timer con std :: chrono time values
Mi sembra che la risposta comporterebbe utilizzando il modello del timer:
typedef boost::asio::basic_deadline_timer<std::chrono::system_clock::time_point>
my_deadline_timer_type;
my_deadline_timer_type a_timer(io_service);
Tranne questo fa saltare in aria male al momento della compilazione ... molte linee di errori, molti dei quali sono simili a questo:
/opt/arm/include/boost/asio/deadline_timer_service.hpp:51:43: error: invalid use of incomplete type 'boost::asio::deadline_timer_service > >, boost::asio::time_traits > > > >::traits_type {aka struct boost::asio::time_traits > > >}'
Così, sembra che potrei aver bisogno di creare un nuovo traits_type
e dichiarare una deadline_timer_service
usarlo, ma io' Non sono sicuro di come/whe ri. Devo credere che questo problema sia stato risolto. Sto usando g ++ 4.7.3 con -std = C++ 11 su linux, cross-compiling per armare.
Grazie per la risposta dettagliata, Dave. Il 'basic_waitable_timer' funzionerà bene per me dal momento che sto usando 1.53. Molto obbligato. –