STL을 배우기 전에 저에게 작성된 범용 라이브러리를 다시 작성하고 있습니다. 그것은 C 스타일 배열을 항상 사용합니다. 다음stl 컨테이너의 크기 처리
unsigned short maxbuffersize;
unsigned short buffersize;
std::vector<T> buffer;
: 그리고 내가 한
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.
가장 먼저하는 일이 이런 식으로 코드를 변경했다 :
typedef unsigned short BufferSize;
BufferSize maxbuffersize;
BufferSize buffersize;
std::vector<T> buffer;
을 그리고 나는 많은 장소에서 이런 코드가있다 내가 아주 나쁜 일을하고있는 것처럼 느껴졌고 제 코딩 스타일을 재고해야합니다. 처음에는 BufferSize가 유형에 대해 매우 나쁜 이름처럼 보였지만 모든 종류의 이상한 질문이 나타났습니다. 크기 유형의 이름은 어떻게 지정합니까? 내 형식을 사용하거나 std::vector<T>::size_type
에서 상속해야합니까? 컨테이너의 크기를 캐시하거나 size()
을 계속 사용해야합니까? 사용자가 컨테이너의 최대 크기를 수동으로 설정할 수 있도록 허용해야하고 그렇지 않은 경우 오버플로를 확인하려면 어떻게해야합니까?
나는 하나의 크기에 맞는 방법을 사용할 수 없다는 것을 알고 있으므로 다른 코더 및 프레임 워크 공급 업체가 사용하는 정책을 듣고 싶습니다. 제가 작업하고있는 라이브러리는 크로스 플랫폼 범용이며 퍼블릭 도메인으로 풀려나 수십 년 동안 사용되기위한 것입니다. 감사.
퍼블릭 도메인으로 공개하려고하므로 프로그램에 약간의 플러그를 주어야한다고 생각합니다. – Tom
일부 제한 사항 (예 : 단 하나의 인스턴스)이 제거 된 [소스 엔진 콘솔] (http://developer.valvesoftware.com/wiki/Console)의 복제본입니다. – Lyberta
에이스, 인터넷에 리포지토리 (예 : github)를 설치 한 경우 - 링크 게시 – Tom