gpt4 book ai didi

c++ - 为 C++ 库编写 C 包装器?

转载 作者:太空宇宙 更新时间:2023-11-04 06:22:28 25 4
gpt4 key购买 nike

C++11 有sleep_for。但是 C 标准没有等价物。

我想我可以写一个包装器来从 C 调用这样的 C++ 函数。

还有一些有用的库,例如 Boost Filesystem 和 Asio。这些更复杂,但我也可以编写包装器。

会不会是重新发明轮子?这会是个坏主意吗?

最佳答案

一个问题是,如果你想编写调用 Boost 函数的 C 包装器,如果抛出异常你会怎么做?在它到达 C 之前,您基本上必须在调用者中吞下它,但是然后将它正确地报告给 C 有点尴尬,并且有很多类型的异常。

通常,当人们特别想要额外的可移植性或由于某种原因无法提供所有 C++ 依赖项时,他们会使用 C 而不是 C++。如果你想写一个使用 boost::filesystem 的 C 程序,为什么不把它编译成 C++ 呢?您要编写的异常处理样板代码会少很多,出错的可能性也会减少。

关于c++ - 为 C++ 库编写 C 包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32449424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com