我正在重寫一個在學習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