带有“std :: _ Unforced'类型的条件表达式的std :: bind错误是非法的”

时间:2018-02-19 01:29:40

标签: c++ visual-studio c++11 c++14

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。

0 个答案:

没有答案