Tôi có một ứng dụng sử dụng thời gian hết hạn asio. Phần còn lại của ứng dụng sử dụng các cấu trúc std::chrono
cho các giá trị thời gian của nó và cảm thấy khó xử khi sử dụng boost::posix_time
chỉ cho những thứ chạm vào asio. Tôi muốn sử dụng std::chrono
suốt ứng dụng nếu tôi có thể, nhất quán, dễ đọc, vvboost :: asio :: deadline_timer với std :: giá trị thời gian chrono
Dường như với tôi rằng câu trả lời sẽ liên quan đến việc sử dụng của timer mẫu:
typedef boost::asio::basic_deadline_timer<std::chrono::system_clock::time_point>
my_deadline_timer_type;
my_deadline_timer_type a_timer(io_service);
Trừ này thổi lên xấu tại thời gian biên dịch ... nhiều dòng lỗi, hầu hết trong số đó là tương tự như sau:
/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 > > >}'
Vì vậy, có vẻ như tôi có thể cần phải tạo ra một mới traits_type
và khai báo một deadline_timer_service
sử dụng nó, nhưng tôi m không chắc chắn làm thế nào/whe lại. Tôi phải tin rằng vấn đề này đã được giải quyết. Tôi đang sử dụng g ++ 4.7.3 với -std = C++ 11 trên linux, cross-compiling to arm.
Cảm ơn câu trả lời chi tiết, Dave. 'Basic_waitable_timer' sẽ hoạt động tốt với tôi vì tôi đang sử dụng 1,53. Nhiều nghĩa vụ. –