Ich habe die folgende Codezeile, die großen Werke:Kann nicht ableiten konst auto &
const auto& dict = m_DictionaryAbbreviationsAndEnglish.Content;
Nun wollte ich eine „if-then-Klausel“ einzuführen, aber der Compiler sagt mir, „Kann nicht ableiten 'auto' Typ (initalizer erforderlich):
const auto& dict;
if (uSkipAbbreviationsAndEnglish)
{
dict = m_DictionaryNoAbbreviationsNoEnglish.Content();
}
else
{
dict = m_DictionaryAbbreviationsAndEnglish.Content();
}
Allerdings, wenn ich es so initialisieren ...
const auto& dict=NULL;
..., ich bin nicht in der Lage „dic zuweisen t“solchen Code verwendet:
dict = m_DictionaryNoAbbreviationsNoEnglish.Content();
Der Fehler ist‚Expression muss ein modifizierbar lValue seine‘
Kann mir jemand sagen, wie dies richtig zu tun.?
Vielen Dank.
ps: Content ist dies:
map<wstring,wstring> &clsTranslations::Content()
{
return m_content;
}
nicht 'auto' hier nicht verwenden, es ist wahrscheinlich nicht wert. – DeiDei
Sie können eine Referenz nicht neu zuweisen. Werfen Sie einen Blick auf [hier] (http://stackoverflow.com/questions/728233/why-are-references-not-reseatable-in-c). – Shibli
Konstanten müssen initialisiert werden – Sniper