Prikaz jedne poruke
Stara 2.6.2012, 0:59   #1
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom make_pair pitanje ??

Kod:
#include <iostream>
#include <string>
#include <map>

class Object {
    public:
        int x;
        int y;
};

class NekaKlasa {
    private:
        std::map< std::string, Object* > m_Obj;

    public:
        void AddObject( Object*, std::string );
};

void NekaKlasa::AddObject(Object* obj, std::string str) {
    m_Obj.insert( std::make_pair<std::string, Object*> ( str, obj ) );
}

int main()
{
    return 0;
}
(Ni jedan dio koda nije izostavljen, tacno ovo kucam)

Ovaj kod se uspjesno kompajlira pod Windows7 u CodeBlocks (mingw32). Medjutim kad isti kod kompajliram pod Linux Ubuntu 11.10 (g++) dobijam sledeci error:
Kod:
In member function ‘void NekaKlasa::AddObject(Object*, std::string)’:
error: no matching function for call to ‘make_pair(std::string&, Object*&)’
note: candidate is:
note: template<class _T1, class _T2> std::pair<typename std::__decay_and_strip<_T1>::__type, typename std::__decay_and_strip<_T2>::__type> std::make_pair(_T1&&, _T2&&)
Dok ako kucam std:: pair (moram da odvojim zbog smajlija xD) umjesto std::make_pair, radi.

Sta je problem ?? xD
clzola je offline   Odgovor sa citatom ove poruke