각 유형에 대해 많은 수의 템플릿을 만들 필요없이 현재 할당 된 연속 변수의 메모리 크기를 결정하는 보편적 인 방법이 필요합니다. 나는 C++ 스타일 컨테이너에 대해이 템플릿 함수가 주로 필요하지만, (Type을 미리 알지 못하기 때문에) 원시 C 타입과도 호환되어야한다.다양한 변수의 크기를 바이트 단위로 결정하기위한 템플릿
질문을 편집하여 조금 더 서술적이고 말쑥합니다. 이 피연산자를 평가하지 않습니다 sizeof
때문에, 컨테이너가 비어있는 경우에도 작동합니다
template <class Container>
constexpr auto byte_size(const Container& container) {
using std::begin;
using std::end;
return (end(container) - begin(container)) * sizeof(container[0]);
}
하는 것으로 : C에서
코드 작성 서비스가 아닙니다. 그런 템플릿을 직접 써야하며, 먼저 그것이 작동하기를 기대하는 방식으로 작동하지 않는 이유와 작동하는 방법을 설명하십시오. –
"C++ 유형은 * sizeof() *와 함께 항상 작동하지 않습니다."- 무엇을?! "클래식 C 유형"?! "인접한 유형"??? –
@SamVarshavchik 글쎄, 어디서부터 시작해야할지 모르겠다. 내가 생각할 수있는 것은 각각의 유형에 대한 템플릿의 어리석은로드입니다. – areuz