草庐IT

c++ - 当库使用模板(泛型)时,是否可以使用 Rust 的 C++ 库?

当库(例如Boost)使用模板(泛型)时,是否可以使用来自Rust的C++库? 最佳答案 是,但它可能不实用。D编程语言是为数不多的提供某种程度的C++互操作性的语言之一;您可以在dlang上阅读更多相关信息.注意模板部分的限制:NotethatallinstantiationsusedinDcodemustbeprovidedbylinkingtoC++objectcodeorsharedlibrariescontainingtheinstantiations.这实际上意味着您必须使用C++代码来实例化具有正确类型的模板,然后D编

c++ - C 风格数组与库接口(interface)的 std::array

我想编写一个带有提供读取功能的接口(interface)的库。C风格的数组容易出错,但允许传递任何大小的缓冲区。C++数组更安全,但强制使用大小来构造。//interface.h//C-stylearrayintread(std::uint8_t*buf,size_tlen);//C++arrayintread(std::array&buff)我怎样才能两全其美?我在考虑函数模板,但它对于库接口(interface)来说似乎不实用。templateintread(std::array&buf);编辑std::vector可能是一个很好的候选人,但如果我们考虑到char*和std::ar

c++ - 在没有运行时的情况下构建 Windows C++ 库?

我正在尝试创建一个用于Windows/MSVC的C++库。我的问题是,为了正确链接,我需要分发一堆不同的版本,链接到不同版本的MSVC的c++运行时-单线程和多线程,调试和发布,不同的编译器版本,各种其他安全和其他选项。我很乐意只分发两个,32位和64位。我的想法是可能对我所有的STL类型使用不同的新运算符(比如mynew)和自定义分配器。创建库时,/nodefaultlib。然后,当从父项目链接进来时,要求他们将mynew转换为new,并将mySTL分配器转换为标准分配器(或他们选择的分配器之一)。我想我需要删除和其他一些功能。自然地,我会提供一个使用库的thunking实现示例,但

c++ - 重构构建系统以使用 Autotools

在过去的几天里,我一直在研究使用autotools来构建我的项目,而不是我在过去几个月中拼凑的Makefile。不幸的是,我还没有找到一个例子让我对我的项目结构目前的情况有足够的了解。我的项目的应用程序代码中包含三个库。我正在寻找使用单个配置脚本来制作(和安装)应用程序和库的最佳方法。 最佳答案 抱歉跑题了。我现在做了类似的事情,但我可以在Autotools和CMake之间进行选择。我很高兴选择了第二个。可能值得一看,包括CDash、CTest和CPack。http://www.cmake.org/最好的问候,奥瓦内斯

c++ - 其他库中的编译器警告

我将我的C++代码链接到几个库(其中几个库主要基于header),其中一些已经有一段时间没有更新了。我一直在GCC4.0上使用-Wall和Wextra编译我的代码一段时间,没有出现任何警告或错误。但是,现在我使用的是较新版本的GCC(4.3),我的一些文件一直在打印来自其他库的包含文件的警告(例如,warning:typequalifiersignoredonfunctionreturntype当库的模板化代码在返回的指针上使用restrict关键字时)。同样,当我使用GCC4.1编译时,我正在使用的集群上的一个稍旧版本的OpenMPI打印出许多警告。问题是:当离开本地目录以读取头文件

c++ - 如何在netbeans中创建项目依赖(c/c++插件)

当我开发一个C++应用程序时,我意识到我正在创建很多可以在其他项目中使用的类和函数。所以我想将所有这些代码放在一个单独的netbeans项目中,该项目可以“包含”到其他项目中。(带有代码完成等)我已经尝试创建一个新的“静态库”项目,然后将该项目添加到我的主项目中(通过转到首选项->链接->库并添加我的“库项目”),但是代码完成功能当我尝试#include时没有找到我的库项目的.h文件,该项目也不会构建。正确的做法是什么? 最佳答案 创建静态库并将其添加到Linker->Libraries是正确的。但还需要另一个小步骤:​​将包含共享

c++ - 从 c/c++ 应用程序写入 *.doc 或 *.rtf 文件

如何使用C或C++以编程方式写入/生成*.doc文件?是否有(开源/跨平台)库可以做到这一点?如果这不可能,是否可以编写一个*.odt文件然后将其转换为*.doc?提前致谢!编辑:AndersAbel评论说*.rtf文件类型是一个选项,因此也接受对此的任何建议。 最佳答案 Joel有一篇关于此主题的有趣文章:http://www.joelonsoftware.com/items/2008/02/19.html基本上他建议:通过COM使用MSWord创建文档。生成MSWord将加载的另一种格式,例如RTF。RTF的优点是它是一种文本格

c++ - 编译器如何使用lib文件?

我很好奇c/c++编译器是如何分析lib文件的?我的意思是说我创建了一个包含一些类的库,我在我的主程序中使用了那个库。编译器如何知道该库中有哪些类名。当然,这些信息以二进制格式存在,我想在我的程序中使用该功能,具体来说,我有一个二进制lib文件,我想知道该lib文件中存在的所有类和属性/函数。这可能吗?如果编译器可以做到,为什么有些库不能?感谢任何线索 最佳答案 编译器不会执行您的建议,但链接器会执行。编译器从包含的与lib文件相关的头文件中知道它需要的信息。然后链接器将您要包含的声明和lib文件及其其他目标文件放在一起。例如,可能

c++ - boost库应该依赖于结构成员对齐吗?

我发现,hardway,至少boost::program_options依赖于编译器配置的结构成员对齐。如果您使用默认设置构建boost并将其与使用4字节对齐(/Zp4)的项目链接,它将在运行时失败(使用program_options进行了最小测试)。Boost将生成一个断言,指示可能存在错误的调用约定,但真正的原因是结构成员对齐。有什么办法可以避免这种情况吗?如果对齐导致代码不兼容,难道不应该将其包含在库命名中吗? 最佳答案 您需要确保您的程序和链接的库具有相同的ABI。可以改变C++类和函数的ABI的编译器开关的数量可能太大,因

iphone - 从 iPhone 中的 WAV 文件中去除背景噪音

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8年前。Improvethisquestion我有一个录制的WAV文件。我想去除背景噪音并单独分离语音。是否有任何C/C++代码可用于实现此目的,以便我可以将其集成到我的项目中?我已经从Audacity下载了一个代码,但无法集成它。是否有可用的第三方库或C/C++代码?