Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
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
Stara 2.6.2012, 8:52   #2
fingerprint
Veteran
 
Član od: 5.11.2006.
Lokacija: Dark Side Of The Moon
Poruke: 1.121
Zahvalnice: 394
Zahvaljeno 594 puta na 222 poruka
Slanje poruke preko MSN-a korisniku fingerprint Slanje poruke preko Yahooa korisniku fingerprint
Određen forumom Re: make_pair pitanje ??

Probaj sa samo :
Kod:
std::make_pair( str, obj )
U C++11 std::make_pair prima dve rvalue reference. Ako eksplicitno naglasiš template parametre, onda se ne desi reference collapsing (pročitaj ovde) i funkcija izgleda ovako :
Kod:
std::make_pair(std::string &&, Object&&)
Pošto su str i obj imenovani objekti, ne mogu biti rvalue. S druge strane, ako ne staviš template parametre, kompajler će sam zaključiti koji su tipovi u pitanju i sve će biti ok

Ovaj guide odlično objašnjava celu stvar : link
fingerprint je offline   Odgovor sa citatom ove poruke
Stara 2.6.2012, 16:38   #3
clzola
Član
 
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
Određen forumom Re: make_pair pitanje ??

Sad radi
hvala ti !
clzola je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku clzola na korisnoj poruci:
fingerprint (5.6.2012)
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Teoretsko pitanje - konfa do 100 evra :) Eni Šta da kupim? 50 7.12.2012 14:47
Prosto pitanje, barem se nadam, validacija forme nepoverljiv Serverske aplikacije i baze podataka 2 26.9.2010 16:14
Stručno pitanje vezano za monitor FiresnakE Kvarovi 11 10.5.2010 10:10
Pitanje u vezi telekom ADSL-a i lokalne mreze NinoJovic Komunikacioni uređaji i umrežavanje 1 28.4.2010 12:38
Pitanje za rubriku I/O PORT nesto nece herrnikolic O SK-u uopšte 5 14.12.2009 22:14


Sva vremena su po Griniču +2 h. Sada je 17:11.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2021, vBulletin Solutions, Inc.
Hosted by Beograd.com