2017-03-19 3 views
2

을 추론 할 수 없습니다 나는 위대한 작품을 다음 코드 줄을 const를 자동 및

const auto& dict = m_DictionaryAbbreviationsAndEnglish.Content; 

가 지금은 "만약 - 다음"절을 소개하고 싶어하지만 컴파일러는 나에게 말한다 "추론 할 수 없습니다 (필수 initalizer) '자동'유형 :이처럼 초기화 그러나

const auto& dict; 

if (uSkipAbbreviationsAndEnglish) 
{ 
    dict = m_DictionaryNoAbbreviationsNoEnglish.Content(); 
} 
else 
{ 
    dict = m_DictionaryAbbreviationsAndEnglish.Content(); 
} 

, ...

const auto& dict=NULL; 

..., 나는 "DIC를 할당 할 수 없어요 t "와 같은 코드를 사용하여이 : 오류가

dict = m_DictionaryNoAbbreviationsNoEnglish.Content(); 

"표현은 수정 좌변해야한다 "

이 사람이 어떻게 제대로 이렇게 말해 수 있습니다.?

감사합니다.

PS :

조건 연산자가 무엇인지입니다
map<wstring,wstring> &clsTranslations::Content() 
{ 
    return m_content; 
} 
+0

여기에'auto'를 사용하지 마십시오, 그것은 아마 그럴 가치가 없어 내용이 있습니다. – DeiDei

+1

참조를 재 할당 할 수 없습니다. [여기] (http://stackoverflow.com/questions/728233/why-are-references-not-reseatable-in-c)를보십시오. – Shibli

+0

상수를 초기화해야합니다. – Sniper

답변

6

:

const auto& dict = uSkipAbbreviationsAndEnglish ? 
        m_DictionaryNoAbbreviationsNoEnglish.Content() : 
        m_DictionaryAbbreviationsAndEnglish.Content();