портирование кода с MSVC на gcc
От: abrec Россия  
Дата: 19.08.09 15:33
Оценка:
Здравствуйте!
Писал проект на MSVC с галочкой в мозге, что возможно надо будет портировать на linux. Сбылось.
Поставил openSUSE 11, codeblocks, boost_1_39_0.
Началось.... Нашел у себя несколько явных косяков
Помогите разобраться.
class CINIItem
{
private:
    std::string m_strSectionName;
    std::string m_strValueName;
    std::string m_strValue;
public:
    CINIItem(const char* pszSectionName, const char* pszValueName,    const char* pszValue);
    ...
    const std::string& GetValue()const { return m_strValue; } ;
    void SetValue(const std::string& strNewValue) { m_strValue = strNewValue; };
        ...
    typedef std::set< CINIItem, CINIItem::Less > INIITEMS;
};
class CINIData
{
protected:
    CINIItem::INIITEMS m_INIItems;
public:
    CINIData(){};
        ...
    bool SetValue(const char* pszSectionName, const char* pszValueName, const long& lValue)
    {
        CINIItem item(pszSectionName, pszValueName, "");
        CINIItem::INIITEMS::iterator iter = m_INIItems.find(item);
        if(iter == m_INIItems.end()) return false;
        std::stringstream sValue;
        sValue << lValue;
        (*iter).SetValue(sValue.str());//здесь ошибка!!!!
//../Public/Include/inidata.h|165|ошибка: нет подходящей функции для вызова ‘CINIItem::SetValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const’|
//../Public/Include/inidata.h|50|замечание: претенденты: void CINIItem::SetValue(const std::string&) <near match>|
        return true;
    };
        ...
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.