2017-05-04 11 views
0
의 QVector

경고 :중첩 Initialiser리스트를 작성하는 방법, 예 QPairs

qvector.h (509)의 조건식이 일정 (MAIN.CPP) qvector.h (506) : 경고 C4127 : 클래스 템플릿 멤버 함수 컴파일 동안 'QVector> :: QVector (표준 : initializer_list)' 는 QVector> :: QVector (표준 : initializer_list '[T = QPair]

템플릿 인스턴스화 작동 기준을 참조하여 컴파일되고) '컴파일 됨

,

내 코드 : 그것은 잘 구축

QVector< QPair< double, float> > container(
     {{40, 0.0f}, 
     {70, 0.95f}, 
     {80, 0.7f}} 
); 

, 난 그냥 (경고 수준을 변경하지 않고) 사라 경고를합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

/* 편집 */

아무도 경고가 무엇인지에 대한 의견이 없습니다 있습니까? 그것이 정확히 무엇을 의미합니까?, 다른 사람들이 경고를했는지 여부. 나는 QVectors에 대한 이니셜 라이저 목록에서 QT 문서를 찾았지만별로 말하지 않았다. 아무도 기능 템플릿 인스턴스화에 대해 일반적으로 말할 것이 없습니까?

+0

은 붙여 넣기에 누락 된 세미콜론입니까? –

+0

haha ​​yes;) thanks. 감사합니다. 컴파일러가이 경우 건물에 어려움을 겪을 것이라고 생각합니다. – codeMetis

답변

0

qvector와 더 관련이있는 경고는 필연적으로 보이며 내 initialiser-list와 관련이 적습니다. Qvector에 대한 모든 생성자는 아래의 클래스 이름 선언의 구문에서 어떤 템플릿, 템플릿 *, 또는 템플릿과 함께 두 클래스가,이 간단한 열거 값

if (QTypeInfo<T>::isComplex) 

확인합니다. 그게 나에게 설명해주고 싶다!

template <typename T> 
class QTypeInfo { enumbla;} 

template<> 
class QTypeInfo<void> { enumbla;} 

template <typename T> 
class QTypeInfo<T*> { enumbla;} 

그래서 열거 실로 그와 같은 일정 적절한 QTypeInfo 클래스의 열거 값을 보이는 경우에!

어쩔 수없는 경고, 더 많은 것들을 억제하십시오!