草庐IT

c++ - 在 C++ 中实现 C 标准库

假设一个操作系统/内核是用C++编写的,并且不“做”任何纯C风格的东西,而是公开建立在成熟的C++标准库之上的C标准库。这可能吗?如果不是,为什么?PS:我知道C库是“C++的一部分”,但可以说它在内部基于基于C++的实现。小更新:看来我已经激起了一场关于我的规则“允许”什么的讨论。一般来说:C标准库实现应该尽可能使用C++/Right(tm)。我主要考虑算法和在幕后作用于静态类对象。我不是真的排除任何语言特性,而是试图将重点放在健全的C++实现上。关于setjmp示例,我看不出为什么这里的有效C(将使用其他在C++C库部分中预先实现或根本不使用任何其他库函数)会违反我的“规则”。如果

C++ 单子(monad)库

有谁知道C++中的一个好的monad模板库。也许,它提供了一些您会在Haskell中看到的常见单子(monad),例如Maybe。 最佳答案 类似Maybe的东西可以在Boost.Optional中找到. 关于C++单子(monad)库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5448162/

c++ - 将 Matlab 数组移植到 C/C++

我正在将一个matlab程序移植到C/C++。我有几个问题,但最重要的问题之一在这里:Matlabtreatsarrayswithanydimensionsame。假设我们有这样一个函数,functionresult=f(A,B,C)result=A+2*B+C;A、B和C可以是任意维度/大小的数组。我不是C/C++专业人士,但我想这在C中并不是一项简单而干净的工作。一个想法是使用void指针将数组传递给函数。那我应该如何处理维度和数组操作(+/*)?另一个想法是使用C++类。我也许可以编写一个模板类,其中包含所有必需的数组操作,例如(*、+、>、...)。但我相信这将是一项令人筋疲力

java - Torrent 库允许下载单独的文件片段

我正在寻找以编程方式通过bittorrent下载具体文件片段(例如第一个或最后一个1Mb)的方法。C/C++、Java或Ruby库对我来说是很好的解决方案。开源世界有什么解决方案吗? 最佳答案 Azureus是用Java编写的,在SourceForge上提供http://azureus.sourceforge.net/download.php 关于java-Torrent库允许下载单独的文件片段,我们在StackOverflow上找到一个类似的问题: http

C++ eigen3 线性代数库,奇怪的性能结果

我在C++中使用eigen3线性代数库有一段时间了,而且我一直试图利用向量化的性能优势。今天,我决定测试矢量化到底能在多大程度上加快我的程序速度。因此,我编写了以下测试程序:---特征测试.cpp---#includeusingnamespaceEigen;#includeintmain(){Matrix4daccumulator=Matrix4d::Zero();Matrix4drandMat=Matrix4d::Random();Matrix4dconstMat=Matrix4d::Constant(2);for(inti=0;i然后我在用不同的编译器选项编译后运行这个程序:(结果

c++ - LibAv/FFMpeg 的线程安全性?

LibAV/FFMpeg线程安全吗?例如。我可以在一个线程中使用AVFormatContext*从一个文件中读取文件,然后通过简单地添加互斥锁在另一个线程中解码读取的数据包,或者库的线程安全性是一种“不知道不关心”类型的交易吗?我知道libav对编码器线程有基本支持,但我正在尝试更多的黑盒类型方法,我将它分成多个线程(源->解码器->过滤器->编码器->接收器)并试图理解复杂性任何对ffmpeg和线程有任何经验并愿意提供与此相关的任何其他信息的人也将不胜感激。 最佳答案 您可以注册自己的锁管理器。ffmpeg库将控制线程安全。例子:

c++ - 在 C/C++ 中将 1 位 bmp 文件转换为数组

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭2年前。Improvethisquestion我希望将可变高度/宽度的1位bmp文件转换为值为0或1的简单二维数组。我对代码和大多数库中的图像编辑没有任何经验我发现涉及比我需要的更高的位深度。任何有关这方面的帮助都会很棒。

c++ - 是否有类似 C++ 的 Guava 库?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。有没有像guava(java)这样的c++库,用一些有用的方法、类和快捷方式扩展标准库。

c++ - 混合 C 和 C++ 的线程同步

我有一个多线程程序,主线程是第三方(无法更改)和纯C。我的任务是围绕它构建新模块(在C++中),这些模块部分驻留在其他线程中,需要使用C程序的接口(interface)。基本上只是读取在C线程中存储和更新的一些变量(整数、float,没有什么复杂的)。现在回答我的问题:我如何确保在访问这些变量时不会从C接口(interface)中获取垃圾,因为我无法在读取时使用互斥锁来锁定它。这可能吗?或者写一个float/int无论如何都是原子操作? 最佳答案 不幸的是,像“写一个float/int[是]原子操作”这样的语句在C或C++中没有很好

c++ - Meyers 单例和动态库

MeyersSingleton是否适用于有动态库的场景?IE。一个定义单例的库,其他人使用它,每个都在自己的编译单元中?(我想这无关紧要,但具体架构是OSX上带有框架的应用程序)我正在使用VanillaMeyersSingleton模式:以下Instance()方法是在实用程序类的头文件中内联定义的(在动态库中定义):staticLogger&Instance(){staticLoggersingletonInstance;returnsingletonInstance;}复制构造函数和operator=被声明为私有(private)且未实现,所以我们应该很好,对吧?现在,如果我从主应