Newsgroup: it.comp.lang.c++
Titolo: STL: primo scontro

Sto approcciando proprio ora alle STL, ho cominciato a leggere qlc,
e pur ammettendo di nn aver ancora capito molto sugli iteratori ( a prop. 
qlc conosce qlc risorsa in rete sull'argomento? ) avrei questo esempio da 
sottoporre..
dov'č l'errore? il compilatore(quella schifezza di Dev-cpp) me lo da' dove 
dichiaro l'iteratore... ma nn riesco a venirne a capo...
Ringrazio in anticipo per tutti i contributi...
Aleander
//<-- inizio codice -->
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
template< class T >
void printList ( const list< T > &listRef )
{
    if ( listRef.empty() )
        cout << "La lista č vuota!";
    else {
        ostream_iterator< T > output( cout, " ");
        copy( listRef.begin(), listRef.end(), cout);
    }
}
int main(){
    list< int > lista;
    int buffer;
    cin >> buffer;
    lista.push_front(buffer);
    printList(lista);
    system("PAUSE");
    return 0;
}
// <-- fine codice --> 

 copy( listRef.begin(), listRef.end(), cout);
 copy( listRef.begin(), listRef.end(), output ); 

 ha scritto nel messaggio 
news:d6m1hr$18o$1...@newsreader.mailgate.org...

La mole degli errori si è ridotta a questo:
 In function `void printList(const std::list<T, std::allocator<_CharT> >&)':
SenzaTitolo1.cpp:13: error: syntax  error before `>' token
SenzaTitolo1.cpp: In  function `void printList(const std::list<T, 
std::allocator<_CharT> >&) [with T = int]':
SenzaTitolo1.cpp:27:   instantiated from here
SenzaTitolo1.cpp:14: error: `   output' undeclared (first use this function)
SenzaTitolo1.cpp:14: error: (Each undeclared identifier is reported only 
once for each function it appears in.) 

     system("PAUSE");
Bleah.
-- 
Adesso quando i medici di turno rifiuteranno di esserti d'aiuto / perchč
venne un polacco ad insegnargli che č piů cristiano imporsi col rifiuto
pretenderanno che tu torni indietro/e ti costringeranno a partorire per
poi chiamarlo figlio della colpa / e tu una Maddalena da pentire

         copy( listRef.begin(), listRef.end(), cout);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cout non č l'ostream_iterator...
ciao.

 Bleah.
Lavorando su windows( e con dev! ), perchč no?
Decisamente meno origine di fastidiosi problemi come i vari getchar(), 
cin.get(), etc...
Scusami se ho ribatutto un po'(e grazie di nuovo per l'aiuto)... ma siamo 
qui per discutere no?
--
Aleander 

 del dev... questo lo vuoi chiamare pregio ?
Se lo standard dice che ostream_iterator si trova nell'header <iterator>
(e questo e` quello che io leggo sul documento dello standard), non c'e`
nessuna ragione per cui debba essere accessibile non includendolo
(escludendo il caso in cui includi qualcosa che includa iterator :)) )
Il comportamento di gcc e` perfettamente corretto, da questo punto di
vista. 
Tieni anche presenti che su molti libri per abbrevviare il codice *non*
includono gli header ovvi (e perdonami, ma il fatto che per usare un
ostream_iterator bisogna includere <iterator> per me e` abbastanza
naturale). 
Esattamente come la maggior parte delle volte tralasciano di ripetere
tutte le volte std::*.
Che libro stai usando?


 Che libro stai usando?
C++ Tecniche avanzate di Programmazione, Deitel&Deitel(che sono gli autori, 
nn la casa editrice!)
--
Aleander 

 nn la casa editrice!)
Ok. 
