无法推断出 const auto&
Can't deduce const auto&
我有下面这行代码,效果很好:
const auto& dict = m_DictionaryAbbreviationsAndEnglish.Content;
现在我想引入一个 "if-then" 子句,但编译器告诉我“无法推断 'auto' 类型(需要初始化程序):
const auto& dict;
if (uSkipAbbreviationsAndEnglish)
{
dict = m_DictionaryNoAbbreviationsNoEnglish.Content();
}
else
{
dict = m_DictionaryAbbreviationsAndEnglish.Content();
}
然而,当我这样初始化它时...
const auto& dict=NULL;
...,我无法使用这样的代码分配 "dict":
dict = m_DictionaryNoAbbreviationsNoEnglish.Content();
错误是"Expression must be a modifiable lValue."
谁能告诉我如何正确执行此操作?
谢谢。
ps:内容是这样的:
map<wstring,wstring> &clsTranslations::Content()
{
return m_content;
}
这就是条件运算符的用途:
const auto& dict = uSkipAbbreviationsAndEnglish ?
m_DictionaryNoAbbreviationsNoEnglish.Content() :
m_DictionaryAbbreviationsAndEnglish.Content();
我有下面这行代码,效果很好:
const auto& dict = m_DictionaryAbbreviationsAndEnglish.Content;
现在我想引入一个 "if-then" 子句,但编译器告诉我“无法推断 'auto' 类型(需要初始化程序):
const auto& dict;
if (uSkipAbbreviationsAndEnglish)
{
dict = m_DictionaryNoAbbreviationsNoEnglish.Content();
}
else
{
dict = m_DictionaryAbbreviationsAndEnglish.Content();
}
然而,当我这样初始化它时...
const auto& dict=NULL;
...,我无法使用这样的代码分配 "dict":
dict = m_DictionaryNoAbbreviationsNoEnglish.Content();
错误是"Expression must be a modifiable lValue."
谁能告诉我如何正确执行此操作?
谢谢。
ps:内容是这样的:
map<wstring,wstring> &clsTranslations::Content()
{
return m_content;
}
这就是条件运算符的用途:
const auto& dict = uSkipAbbreviationsAndEnglish ?
m_DictionaryNoAbbreviationsNoEnglish.Content() :
m_DictionaryAbbreviationsAndEnglish.Content();