Newsgroup: it.comp.lang.c++
Titolo: make_pair e using

Ciao. Mi sono un pò perso con questo programma:
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <utility>
using std::cout;
using std::endl;
using std::cin;
using std::string;
using std::vector;
using std::map;
using std::pair;
int main()
{
	cout << "make_pair(first, last): " << endl;
	pair<string, string> next_auth;
	string first, last;
	while (cin >> first >> last) {
		// generate a pair from first and last
		next_auth = make_pair(first, last);
		// process next_auth
		cout << next_auth.first << "     " << next_auth.second << endl;
	}
	return 0;
}
Questo non da nessun problema di compilazione, ma se aggiungo le
seguenti righe di codice dopo il while:
        vector<pair<string, string> > svec1;
	svec1.push_back(make_pair("Robert", "10/01/1980"));
Il compilatore dà il seguente errore:
error: 'make_pair' was not declared in this scope
e per rimediare devo inserire using std::make_pair;
Ora, considerando che non è un gran problema, non riesco a capire
perchè nel while il tipo
make_pair è visibile mentre nella chiamata a push_back() dà errore.
Vi sembra un comportamento strano o c'è qualcosa che non so?
Grazie ancora.

 Vi sembra un comportamento strano o c'è qualcosa che non so?
Forse c'è qualcosa che non sai. 
Però oggi sono un po' pigro, e non starò a spiegare tutta la faccenda.
Cerca: 
 "Argument dependent name lookup" oppure "Koenig lookup"
Oppure guarda direttamente qui: 
 
http://en.wikipedia.org/wiki/Argument_dependent_name_lookup
Max

 Max
Bene bene. Non ho capito niente ma mi documenterò. Almeno ora so cosa
cercare.
Grazie ancora!.

 Max
Ok. Non serve che spieghi niente.
Grazie alle tue indicazioni ora ho capito più o meno il problema.
E' un pò complicato sto C++... bisogna assaggiarlo tutto e mangiarlo a
piccoli bocconi.
Poi va digerito con calma.
Ciao.

 piccoli bocconi.
E' *estremamente* complicato. E' un fatto noto ed è bene dirlo chiaro e
tondo. Sfortunatamente è pure (in determinati ambiti) quasi
insostituibile. 
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.


Ora non stò a spiegarti il motivo per cui ho scelto questo linguaggio
rispetto ad un'altro.
Ma ci ho pensato molto bene prima di investire risorse (anche
economiche) per apprendere il C++. Sò bene che è un linguaggio
complesso per fare cose complesse.
Comunque di una cosa sono sicuro: il tempo speso per imparare il C++
sta dando i suoi risultati.
Da autodidatta non pretendo di fare grossi progetti, ma intanto mi
permette di portare a casa un
piccolo extra oltre al normale stipendio.
Poi col tempo verrà anche l'esperienza...
Ciao.

 Poi col tempo verrà anche l'esperienza...
Già.


 l'uso di C++ (Meyers, Josuttis, Sutter).
Già. Mi sono reso conto che una volta che inizi, non smetti più di
sfogliare manuali.
Crea dipendenza. Sarà una droga?.
Mah!.
Ciao.

 Crea dipendenza. Sarà una droga?.
Si. Tranquillo, è così. Ma consolati, ci sono molte intersezioni (per
esempio non credo avrai voglia di leggere sia Meyers che Sutter, molte
cose sono 'doppie', Josuttis è in qualche modo complementare, come lo
sono vari testi su metaprogrammazione templatica etc etc -- ma per
quelli non c'è fretta).
