2014-10-16 3 views
3

Args의 모든 종류의 빈은 빈 기본 클래스 최적화를 사용하기 위해 std :: tuple이 필요합니까?

std::is_empty<std::tuple<Args...>>::value 

반환 사실 경우? gcc 4.9의 빠른 테스트는 이것이 사실이지만 표준에 의해 요구 되는가를 나타냅니다.

+2

'튜플 (tuple)'클래스는 어떤 것을 상속한다고 말합니까? – jrok

+2

@jrok : 아무도 그렇게 말하지 않습니다. 문제는 그것이 사실인지 여부를 묻는 것입니다. –

+0

표준을 읽을 수있는 한 튜플 구현에 대한 요구 사항이없는 것으로 보입니다. – Bulletmagnet

답변

6

아니요, tuple이 상속을 사용하여 빈 기본 클래스 최적화를 사용하도록 설정하지 않아도됩니다.

튜플 라이브러리의 유일한 텍스트 사양은 다음과 같습니다

이 절은 인수를 무제한으로 인스턴스화 할 수있는 클래스 템플릿 튜플로 튜플 타입을 제공하는 튜플 라이브러리를 설명합니다. 각 템플릿 인수는 튜플에있는 요소의 유형을 지정합니다. 결과적으로 튜플은 이질적이며 고정 된 크기의 값 모음입니다. 두 개의 인수를 갖는 튜플의 인스턴스화는 동일한 두 개의 인수를 갖는 쌍의 인스턴스화와 유사합니다.

구현 세부 사항에 대한 언급이 없으며; 템플릿 지정이 시작됩니다.

template <class... Types> 
class tuple { 

아무 것도 상속해야한다는 것을 지정하지 않습니다.

+0

+1 나는 아직도 질문이 좀 이상하다고 생각하지만 이것은 완벽하게 정확한 답변입니다. –

관련 문제