Здравствуйте!
Писал проект на 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;
};
...
};