我正在重写一个在学习STL之前由我编写的通用库。它一路使用C风格的数组。在许多地方有这样的代码:处理stl容器的大小
unsigned short maxbuffersize; // Maximum possible size of the buffer. Can be set by user.
unsigned short buffersize; // Current size of the buffer.
T *buffer; // The buffer itself.
我做的第一件事就是改变这样的代码:
unsigned short maxbuffersize;
unsigned short buffersize;
std::vector<T> buffer;
然后:
typedef unsigned short BufferSize;
BufferSize maxbuffersize;
BufferSize buffersize;
std::vector<T> buffer;
然后我感觉我正在做一件非常糟糕的事情,应该重新考虑我的编码风格。起初,BufferSize对于一种类型来说似乎是一个非常糟糕的名字,但随后出现了各种奇怪的问题。我如何命名大小类型?我应该使用自己的类型还是从std::vector<T>::size_type
继承?我应该缓存容器的大小还是一直使用size()
?我应该允许用户手动设置容器的最大尺寸,如果不是,我该如何检查溢出?
我知道不可能有一种万能的方法,因此我想听听其他编码器和框架供应商使用的策略。我正在研究的图书馆是跨平台的通用目的,旨在发布到公共领域并使用数十年。谢谢。
既然你要将它释放到公有领域,我认为你应该给你的程序一点点插件。 – Tom
这是[Source engine console](http://developer.valvesoftware.com/wiki/Console)的克隆,但有一些限制(例如只有一个实例)被删除。 – Lyberta
王牌,如果你在互联网上建立一个仓库(如github) - 发布链接 – Tom