C++ resource

编译器
Borland C++
         ......
Visual C++
         ......

Intel C++
          著名CPU制造厂商Intel出品的编译器,Special Design for Intel x86!对于Intel x86结构的CPU经过特别的 优化。在有些应用情况下,特别是数值计算等高性能应用,仅仅采用Intel的编译器编译就能大幅度的提高性能。

Digital Mars C++
         网络上提供免费下载,Zortech/Symantec C++的继承者,其前身在当年惨烈的C++四国战中也是主角之一。

GNU C++
          著名的开源C++编译器。是类Unix操作系统下编写C++程序的首选。特点是有非常好的移植性,你可以在非常广泛的平台上使用它,同时也是编写跨平台, 嵌入式程序很好的选择。另外在符合标准这个方面一直都非常好,GCC3.3大概能够达到96.15%。但是由于其跨平台的特性,在代码尺寸速度等优化上略 微差一点。

基于GNU C++的编译器有很多,比如:
Mingw: http://www.mingw.org/ 
         GCC的一个Windows的移植版本(Dev-C++的后台)

Cygwin: http://sources.redhat.com/cygwin/ 
         GCC 的另外一个Windows移植版本是Cygwin的一部分,Cygwin是Windows下的一个Unix仿真环境。严格的说是模拟GNU的环境,这也就 是"Gnu's Not Unix"要表达的意思,噢,扯远了,这并不是我们在这里关心的实质内容。  

Djgpp: http://www.delorie.com/djgpp/ 
         这是GCC的DOS移植版本。

RSXNT: http://www.mathematik.uni-bielefeld.de/~rainer/ 
         这是GCC的DOS和Windows移植版本。



文档工具类

Doxygen
参考站点: http://www.doxygen.org 
         Doxygen是一种适合C风格语言(如C++、C、IDL、Java甚至包括C#和PHP)的、开放源码的、基于命令行的文档产生器。

C++2HTML
参考站点: http://www.bedaux.net/cpp2html/ 
         把C++代码变成语法高亮的HTML

CodeColorizer
参考站点: http://www.chami.com/colorizer/ 
         它能把好几种语言的源代码着色为HTML

Doc-O-Matic
参考站点: http://www.doc-o-matic.com/  
         Doc-O_Matic为你的C/C++,C++.net,Delphi/Pascal, VB.NET,C#和Java程序或者组件产生准确的文档。Doc-O-Matic使用源代码中的符号和注释以及外部的文档文件创建与流行的文档样式一致的文档。

DocVizor
参考站点: http://www.ucancode.net/Products/DocBuilder/Features.htm 
         DocVizor满足了面向对象软件开发者的基本要求——它让我们能够看到C++工程中的类层次结构。DocVizor快速地产生完整可供打印的类层次结构图,包括从第三方库中来的那些类,除此之外DocVizor还能从类信息中产生HTML文件。

SourcePublisher C++
参考站点: http://www.scitools.com/sourcepublisher_c.html 
         给源代码产生提供快速直观的HTML报表,包括代码,类层次结构,调用和被调用树,包含和被包含树。支持多种操作系统。

Understand
参考站点: http://www.scitools.com/ucpp.html 
         分析任何规模的C或者C++工程,帮助我们更好的理解以及编写文档。



代码工具类

CC-Rider
参考站点: http://www.cc-rider.com 
         CC-Rider是用于C/C++程序强大的代码可视化工具,通过交互式浏览、编辑及自动文件来促进程序的维持和发展。

CodeInspect
参考站点: http://www.yokasoft.com/ 
         一种新的C/C++代码分析工具。它检查我们的源代码找出非标准的,可能的,以及普通的错误代码。

CodeWizard
参考站点: http://www.parasoft.com 
         先进的C/C++源代码分析工具,使用超过500个编码规范自动化地标明危险的,但是编译器不能检查到的代码结构。

C++ Validation Test Suites
参考站点: http://www.plumhall.com/suites.html 
         一组用于测试编译器和库对于标准吻合程度的代码库。

CppRefactory
参考站点: http://cpptool.sourceforge.net/
         CPPRefactory是一个使得开发者能够重构他们的C++代码的程序。目的是使得C++代码的重构能够尽可能的有效率和简单。

Lzz
参考站点: http://www.lazycplusplus.com/
         Lzz是一个自动化许多C++编程中的体力活的工具。它能够节省我们许多事件并且使得编码更加有乐趣。给出一系列的声明,Lzz会给我们创建头文件和源文件。

QA C++ Generation 2000
参考站点: http://www.programmingresearch.com/solutions/qacpp.htm 
         它关注面向对象的C++源代码,对有关于设计,效率,可靠性,可维护性的部分提出警告信息。

s-mail project - Java to C++DOL
参考站点: http://sadlocha.strefa.pl/s-mail/ja2dol.html 
         把Java源代码翻译为相应的C++源代码的命令行工具。

SNIP from Cleanscape Software International
参考站点: http://www.cleanscape.net/stdprod/snip/index.html 
         一个填平编码和设计之间沟壑的易于使用的C++开发工具,节省大量编辑和调试的事件,它还使得开发者能够指定设计模式作为对象模型,自动从对象模型中产生C++的类。

SourceStyler C++
参考站点: http://www.ochresoftware.com/ 
         对C/C++源代码提供完整的格式化和排版控制的工具。提供多于75个的格式化选项以及完全支持ANSI C++。



编译类

Compilercache
参考站点: http://www.erikyyy.de/compilercache/ 
         Compilercache是一个对你的C和C++编译器的封装脚本。每次我们进行编译,封装脚本,把编译的结果放入缓存,一旦编译相同的东西,结果将从缓存中取出而不是再次编译。

Ccache
参考站点: http://ccache.samba.org/ 
         Ccache是一个编译器缓存。它使用起来就像C/C++编译器的缓存预处理器,编译速度通常能提高普通编译过程的5~10倍。

Cmm (C++ with MultiMethods)
参考站点: http://www.op59.net/cmm/cmm-0.28/users.html
         这是一种C++语言的扩展。读入Cmm源代码输出C++的源代码,功能是对C++语言添加了对multimethod的支持。

The Frost Project
参考站点: http://frost.flewid.de/ 
         Forst 使得你能够在C++程序中像原生的C++特性一样使用multimethod以及虚函数参数。它是一个编译器的外壳。



测试和调试类

CPPUnit
         CppUnit 是个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架。CppUnit 和 JUnit 一样主要思想来源于极限编程。主要功能就是对单元测试进行管理,并可进行自动化测试。

C++Test
参考站点: http://www.parasoft.com /
         C++ Test是一个单元测试工具,它自动化了C和C++类,函数或者组件的测试。

Cantata++
参考站点: http://www.iplbath.com/products/tools/pt400.shtml 
         设计的目的是为了满足在合理的经济开销下使用这个工具可以让开发工程师开展单元测试和集成测试的需求.

Purify
参考站点: http://www-900.ibm.com/cn/software/rational/products/purifyplus/index.shtml 
         IBM Rational PurifyPlus是一套完整的运行时分析工具,旨在提高应用程序的可靠性和性能。PurifyPlus将内存错误和泄漏检测、应用程序性能描述、代码覆盖分析等功能组合在一个单一、完整的工具包中。

BoundsChecker
         BoundsChecker 是一个C++运行时错误检测和调试工具。它通过在Visual Studio内自动化调试过程加速开发并且缩短上市的周期。 BoundsChecker提供清楚,详细的程序错误分析,许多是对C++独有的并且在static,stack和heap内存中检测和诊断错误,以及发 现内存和资源的泄漏。

Insure++
参考站点: http://www.parasoft.com /
         一个自动化的运行时程序测试工具,检查难以察觉的错误,如内存覆盖,内存泄漏,内存分配错误,变量初始化错误,变量定义冲突,指针错误,库错误,逻辑错误和算法错误等。

GlowCode
参考站点: http://www.glowcode.com/
         GlowCode包括内存泄漏检查,code profiler,函数调用跟踪等功能。给C++开发者提供完整的错误诊断,和运行时性能分析工具包。

Stack Spy
参考站点: http://www.imperioustech.com/ 
         它能捕捉stack corruption, stack over run, stack overflow等有关栈的错误。
 
To implement a resource pool in C++, you can use the concept of object pooling. Object pooling is a design pattern that allows you to reuse objects instead of creating and destroying them frequently, which can be expensive in terms of memory allocation and deallocation. Here's a basic example of how you can implement a resource pool in C++: ```cpp #include <queue> #include <mutex> #include <condition_variable> template<typename T> class ResourcePool { private: std::queue<T*> pool; std::mutex mutex; std::condition_variable condition; public: ResourcePool(int initialSize) { for (int i = 0; i < initialSize; ++i) { pool.push(new T()); } } ~ResourcePool() { while (!pool.empty()) { delete pool.front(); pool.pop(); } } T* acquireResource() { std::unique_lock<std::mutex> lock(mutex); if (pool.empty()) { // Wait until a resource is available condition.wait(lock); } T* resource = pool.front(); pool.pop(); return resource; } void releaseResource(T* resource) { std::unique_lock<std::mutex> lock(mutex); pool.push(resource); // Notify waiting threads that a resource is available condition.notify_one(); } }; ``` In this example, the `ResourcePool` class uses a queue to store the resources. The `acquireResource` function is responsible for acquiring a resource from the pool. If the pool is empty, it waits until a resource becomes available using the `std::condition_variable`. The `releaseResource` function is used to release a resource back into the pool. You can customize this implementation based on your specific requirements. For example, you can add additional functions to initialize or resize the pool dynamically.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值