내가 만들고있는 클래스의 최대 크기를 명시 적으로 제한하려고하고 있지만 작동하지는 않지만 보이지 않는 것처럼 보입니다. 이 예제는 다소 고안된 것이지만 상황이 자연스럽게 발생하는 경우를 대비해서 알고 싶습니다.C++ 이니셜 라이저 목록 제약 확인
PriorityQueue(const unsigned int maxSizeIn) :
maxSize((maxSizeIn >= SOME_CONSTANT) ? SOME_CONSTANT - 1 : maxSizeIn),
queueArray(new PriorityPair<T>*[maxSizeIn]()),
currentHeapSize(0)
{
}
clunkiness는 intializer 목록에서 삼항 표현을 갖는에서 오는 : 그대로
는 여기있다. 이 방법이 효과가 있지만, 특히 좋지는 않습니다. 목록의 각 구성 요소를 한 줄씩 구분해야합니다. 나는 그 논리를 생성자의 몸으로 옮기려고 시도했지만 어떻게 시도했는지에 관해 논란이있었습니다.
명확성을 위해 필자가 원하는 것을 더 잘 강조하기 위해 원본을 편집했습니다. 즉, 이니셜 라이저 목록에 제약 조건을 넣기 위해 더 깨끗한 기능적으로 동일한 방법이 있습니다.
이와 같은 문제에 대한 해결 방법은 무엇입니까?
왜'maxSizeIn'은'numum_limits :: max()'와 같지 않습니까? –
NathanOliver
@ NathanOliver 그 부분은 임의적입니다. 나는 그 모든 것의 clunkiness에 더 관심이있다. – Caboose