C++ 11에서는 constexpr을 사용하여 컴파일 할 때 내장 된 1 차원 배열의 크기 (요소 수)를 반환하는 함수를 만들 수 있습니다. 아래의 예 :가변 템플릿 함수를 사용하는 내장 다차원 배열의 크기
template <typename T, std::size_t N>
constexpr std::size_t size(T (&array)[N])
{
return N;
}
이것은 ARRAY_SIZE 및 유사한 매크로 imo 대신 우수한 대안입니다.
그러나 내장 된 다차원 배열의 가장 중요한 차원 크기 만 반환합니다.
나는의 크기를 결정하기 위해 다음과 같은 기능을 사용하여 내장 된 두 개의 차원 배열 : 이상적으로
template <typename T, std::size_t N, std::size_t N2>
constexpr std::size_t size(T (&array)[N][N2])
{
return N * N2;
}
, 그것의 크기를 반환하는 기능이 매우 유용 할 것이다 내장 배열 임의의 수의 차원으로 난 variadic 템플릿 도움이 될 수도 있지만 단 하나의 인수가 전달되면서 템플릿 매개 변수의 압축을 푸는 방법을 볼 수 없다고 생각. 그러한 기능이 가능합니까?
미리 감사드립니다.
세 가지 작업 응답 받고, 모든 다른 :). 나는 KennyTM이 가장 우아하다고 생각하여 그의 대답을 받아 들였고, Johannes 's가 그 뒤를이었다. – Ricky65