std :: bind错误与“std :: _ Unforced'类型的条件表达式是非法的”
需要帮助来理解此错误
template <typename Func>
bool IsConfigured(Func &f, const CString& type, const const MESSAGE_TYPE& message) const
{
CString strTag, strValue;
if (f(type, strTag, strValue)) <== error reported here
{
//do something with message and return true/false
}
return false;
};
在这里打电话
if(IsConfigured(std::bind(&Message::TypeConfigured, object, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3), "type1", message))
和
bool Message::TypeConfigured(const CString& strType, CString& strTag, CString& strValue) const
{
auto it = m_SchemeList.find(strType);
if (it != m_SchemeList.end())
{
strTag = it->second.strTag;
strValue = it->second.strValue;
return !strTag.IsEmpty() && !strValue.IsEmpty();
}
return false;
}
我正在使用visual studio 2015并且无法理解什么是“std :: _ Unforced'类型的条件表达式是非法的”因为Message :: TypeConfigured返回了bool。