Проблема
Как можно использовать потоки с ++ (например, std::ifstream
или ostream
) из Cython? В C ++ вы могли бы сделать следующее:
std::ofstream output { filename, std::ios::binary };
output.write(...);
Как бы вы достигли того же в Cython?
Текущее состояние
Я завернул структуры из fstream в Cython, чтобы я мог использовать их имена в объявлениях функций, но самое сложное - использовать (возможно, обтекание в Cython) метод write и создавать потоки. Я не нашел примеров кода в интернете.
P.S. Я знаю, что одним из возможных ответов было бы просто использовать ввод-вывод Python, но мне нужно передавать / возвращать потоки в и из кода C ++, с которым я взаимодействую.
Это код, который упаковывает объявления потоков:
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