는 다음과 같은 코드를 생각해 보자. 이 오류가 예상되지만 GCC는이 코드를 허용합니다. GCC의 버그입니까, 아니면 뭔가 빠졌습니까?GCC가 개인 중첩 클래스에서 상속을 허용하는 이유는 무엇입니까? 개인 중첩 된 클래스입니다 <code>A::B</code>에서</p> <pre><code>class A { class B {}; }; template <typename C> class D : A::B {}; void f() { D<int> d; } </code></pre> <p><code>D<int></code> 상속 :
10
A
답변
7
2
비 템플릿 전달 클래스를 만들려고 했습니까?
해당 클래스의 개체가 없으면 템플릿 클래스가 컴파일되지 않습니다. 이 클래스의 인스턴스를 만들거나 템플릿이 아닌 파생 클래스를 만들어보십시오 - GCC는 아마 실패 할 것이다 ;-)
편집 내 나쁜 - 객체 생성과 gcc가 오류의 원인이 아닙니다. 그 죄송합니다.
+2
그는 인스턴스를 만듭니다. 'f()'... – StoryTeller
+0
좋아, 맞아. 이것을 점검하면 작동합니다. | 나는 그것을 이해하지 못한다. 정말로. – Yester
관련 문제
- 1. class_eval과 class << className의 차이점은 무엇입니까?
- 2. 템플릿 특수화 <typename T 템플릿 <typename> class U>
- 3. "class << self"표현식을 사용하는 이유는 무엇입니까?
- 4. Vim Janus <D-F><D-/>
- 5. 조작 << 상속
- 6. rails 2, Will_paginate, # <class :
- 7. "<<"struct (no class) cout 스타일로 오버로드하기
- 8. 연산자 << : std :: cout << i << (i << 1);
- 9. HashMap <Class<?>, List <Class<?> >> 목록의 클래스가 키를 확장하도록 지정
- 10. github add <<<<<<< HEAD
- 11. 변환 ArrayList를 <Class> []
- 12. 내가 뭘 했니? <code>A</code></p> <pre><code>template <typename T> class A { } ; </code></pre> <p>및 <code>A<T></code>에서 파생 된 클래스 (유지 타입들이 generic)을, 나는 클래스가
- 13. Heredoc <<< 또는 <<?
- 14. + b + c <= n <= n
- 15. 내가 부모 <code>class P</code>와 <strong>추상 클래스</strong>에서 아이 <code>class C.</code></p> <p>을 가지고, 자바에서 자식 클래스
- 16. 스칼라 : 여기</p> <pre class="lang-py prettyprint-override"><code>def f((a, b)): return a + b d = (1, 2) f(d) </code></pre> <p>튜플 전달의는 <code>f</code>로 전달되는 동안 분해되고 :이 작업을 수행 할 수 있습니다 파이썬에서
- 17. << 연산자 및 상속 된 클래스
- 18. 유형이 빈 집합 만들기 <Class<?>>
- 19. class << self, alias_method 및 monkey patching Mechanize :: Cookie
- 20. 내가</p>이 <pre><code>class A { void foo(){} void foo(int a){} } class B extends A { void foo(){} } </code></pre> <p>이 방법 <strong>foo는()가</strong> 클래스 <strong>에서</strong> 모두가 오버라이드 (override) 오버로드겠습니까 경우 자바
- 21. ajax-json 요청으로 여러 .each를 최적화하는 방법은 무엇입니까?</p> <pre><code><div class="graph_score" title="2" > <div class="graph_score" title="3" > <div class="graph_score" title="4" > <div class="graph_score" title="5" > .... </code></pre> <p>내 JQuery와 :
- 22. C# 목록을 수정하는 방법 <class>
- 23. Class <T> .isAssignableFrom (Class <?> cls)의 대안은 무엇입니까?
- 24. 맞춤 << 방법
- 25. 은 '(<code>Owner</code>에 의해 (무슨 적절한 단어?) <pre><code>class Owner { Bar b = new Bar(); dostuff(){...} } class Bar { Bar() { //I want to call Owner.dostuff() here } } </code></pre> <p><code>Bar b</code></p>가'소유 '입니다 ...
- 26. 가상 << operator
- 27. 나는 연산자를 오버로드하려고합니다. <<
- 28. PHP에서 "<<< SQL"이란 무엇입니까?
- 29. 세트 <class> 삽입 문제
- 30. "Class myclass = Class()"는 자원을 낭비합니까?</p> <pre><code>class Cat { Cat(); Tail longTail; } </code></pre> <p>나는 그것을 위해 생성자를 작성하는 적절한 방법에 대해 확실하지 않다 :
템플릿 선언을 제거하면 예상되는 오류가 발생하므로 버그처럼 보입니다. – StoryTeller
MSVC에서 오류를 발생시킵니다. –
Visual Studio 2012에서는 해당 코드를 컴파일하지 않습니다. – Yester