Vấn đềCython: làm việc với C++ suối
như thế nào c suối một sử dụng ++ (như std::ifstream
hoặc ostream
) từ Cython? Trong C++, bạn có thể làm như sau:
std::ofstream output { filename, std::ios::binary };
output.write(...);
Bạn sẽ đạt được điều tương tự như thế nào trong Cython?
Thực trạng
Tôi đã bọc các cấu trúc từ fstream trong Cython vì vậy mà tôi có thể sử dụng tên của họ trong tờ khai chức năng, nhưng phần khó khăn là sử dụng (bọc trong Cython, có lẽ) phương pháp ghi và để tạo luồng. Tôi không tìm thấy bất kỳ ví dụ mã nào trên internet.
P.S. Tôi biết một câu trả lời có thể là chỉ cần sử dụng IO của Python nhưng tôi cần phải chuyển/trả về các luồng đến và từ mã C++ mà tôi đang giao tiếp với.
Đây là mã mà kết thúc tốt đẹp tờ khai dòng:
cdef extern from "<iostream>" namespace "std":
cdef cppclass basic_istream[T]:
pass
cdef cppclass basic_ostream[T]:
pass
ctypedef basic_istream[char] istream
ctypedef basic_ostream[char] ostream