2010-03-03 20 views
7

Tôi biết rằng question has already been asked và đã trả lời, nhưng đã hơn một năm trước và có vẻ như có các giải pháp thay thế mới ngoài đó.Tôi nên chọn thư viện sự kiện/đại biểu ánh sáng nào của C++ (tín hiệu/khe)?

Vì vậy, tôi đang mã hóa một trò chơi với SFML library (tôi bắt đầu thấy khá nhiều điều thú vị) và tôi đang tìm thư viện sự kiện/đại biểu nhanh và nhẹ.

Sau khi thực hiện một số nghiên cứu và đặt sang một bên các cổ điển (Boosts.Signals, libsigc++), tôi tìm thấy "cpp-events". Nó không có vẻ rất phổ biến ngay bây giờ - vì nó là một thư viện rất gần đây - nhưng có vẻ như là tồi tệ nhất để được kiểm tra. Tôi sẽ rất quan tâm để biết nếu một người nào đó ở đây đã thử nó và có thể đưa ra một chút phản hồi.

Bạn có các tùy chọn tương tự (hoặc tốt hơn) khác để đề xuất không? Tôi nhìn các dự án khá thực tế (sẽ được duy trì) hơn là các câu trả lời trên các diễn đàn.

Cảm ơn bạn!

+0

Câu hỏi khác có thể được cập nhật với câu trả lời và/hoặc chỉnh sửa mới. –

Trả lời

3

Cảm giác của tôi là http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx là một triển khai tuyệt vời cho trò chơi. Không có phân bổ bộ nhớ động, hiệu năng hợp lý, đơn giản để gỡ lỗi => tuyệt vời cho trò chơi.

Tôi đã sử dụng các đại biểu tương tự trong quá khứ, quá trình triển khai này có vẻ hiệu quả hơn.

Một trong những bạn đề xuất đề cập đến an toàn luồng, nhưng tôi sẽ không cảm thấy thoải mái với giao diện dựa trên đại biểu được sử dụng giữa các chuỗi. Điều đó có thể làm việc tốt trên một dự án nhỏ nhưng nếu một nhóm phát triển, thì cũng có khả năng xảy ra thảm họa. Tôi cũng sẽ đặt câu hỏi về hiệu quả của một tính năng như vậy.

3

Ngoài ra, hãy xem Boost.Signals2 là phiên bản an toàn của Boost.Signals. Tôi đang sử dụng nó tại nơi làm việc trong một dự án cỡ trung bình và tôi khá hài lòng với nó.

+0

+1 Tôi sẽ sử dụng Signals2 ngay cả khi không an toàn chỉ vì nó cũng chỉ là tiêu đề. – Tronic

Các vấn đề liên quan