Máy khách BitTorrent Truyền chuyển từ C sang C++

Thư viện libtransmission, là nền tảng của ứng dụng khách Transmission BitTorrent, đã được dịch sang C++. Quá trình truyền vẫn có các ràng buộc với việc triển khai giao diện người dùng (giao diện GTK, daemon, CLI), được viết bằng ngôn ngữ C, nhưng việc hợp ngữ hiện yêu cầu trình biên dịch C++. Trước đây, chỉ có giao diện dựa trên Qt được viết bằng C++ (ứng dụng khách dành cho macOS là Objective-C, giao diện web bằng JavaScript và mọi thứ khác đều bằng C).

Việc chuyển được thực hiện bởi Charles Kerr, trưởng dự án và là tác giả của giao diện Truyền dẫn dựa trên Qt. Lý do chính để chuyển toàn bộ dự án sang C++ là cảm giác rằng khi thực hiện các thay đổi đối với truyền dẫn lib, bạn liên tục phải phát minh lại bánh xe, mặc dù đã có sẵn các giải pháp cho các vấn đề tương tự trong thư viện C++ tiêu chuẩn (ví dụ: điều đó là cần thiết). để tạo các hàm tr_quickfindFirstK() và tr_ptrArray() của riêng bạn với sự hiện diện của std: :partial_sort() và std::vector()), cũng như cung cấp cho C++ các phương tiện kiểm tra loại nâng cao hơn.

Cần lưu ý rằng các nhà phát triển không đặt cho mình mục tiêu viết lại ngay toàn bộ quá trình truyền lib trong C++ mà có ý định thực hiện chuyển đổi sang C++ dần dần, bắt đầu bằng việc chuyển sang biên dịch dự án bằng trình biên dịch C++. Ở dạng hiện tại, trình biên dịch C không còn có thể được sử dụng để hợp ngữ vì một số cấu trúc dành riêng cho C++ đã được thêm vào mã, chẳng hạn như từ khóa “auto” và chuyển đổi kiểu bằng cách sử dụng toán tử “static_cast”. Hỗ trợ cho các hàm C cũ hơn dự kiến ​​vẫn được duy trì để tương thích, nhưng các nhà phát triển hiện được khuyến khích sử dụng std::sort() thay vì qsort() và std::vector thay vì tr_ptrArray. constexpr thay vì tr_strdup() và std::vector thay vì tr_ptrArray.

Nguồn: opennet.ru

Thêm một lời nhận xét