Newsgroup: it.comp.lang.c++
Titolo: Problemi di compilazione Vc++ Microsoft

Qualcuno sa dirmi come risolvere un problema di compilazione 
dell istruzione vector<string> v (ii,eos)
nel file seguente:
//#include "H1.h"
#include <string>
#include <iterator>
#include <algorithm>
//#include <map>
//#include <list>
#include <vector>
//#include <stdlib.h>
//#include <stdlib>
#include <istream>
#include <ostream>
#include <iostream>
#include <fstream>
//#include <string.h>
using namespace std;
int main ()
{
	string from, to;
	cin >> from >> to;
 
	ifstream is (from.c_str ());
 
 
	istream_iterator<string> ii (is);
	istream_iterator<string> eos;
    //back_insert_iterator<vector<string>> dest <b> 
	vector<string> b(ii, eos);
	//copy (ii, eos, b.begin());
	//copy (b.begin(), b.end(),
ostream_iterator<string>(cout,"\n"));
	sort (b.begin(), b.end());
	ofstream os (to.c_str());
	ostream_iterator <string> oo (os);
	unique_copy (b.begin(), b.end(),oo);
	return !is && !os;
}
Il messaggio di errore e':
--------------------Configuration: Cpp1 - Win32
Debug--------------------
Compiling...
Cpp1.cpp
E:\prj_cpp\stream\Cpp1.cpp(27) : error C2664: 'std::vector<class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char>>,class std::allocator<class
std::basic_string<char,struct std::char_traits<char>,class
std::allocator<ch
ar>>>>::vector<class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char>>,class
std::allocator<class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char>>>>(unsigned
int,const class std::basic_s
tring<char,struct std::char_traits<char>,class std::allocator<char>>
&,const class std::allocator<class std::basic_string<char,struct
std::char_traits<char>,class std::allocator<char>>> &)' : cannot
convert parameter 1 from 'class std::istream_itera
tor<class std::basic_string<char,struct std::char_traits<char>,class
std::allocator<char>>,char,struct std::char_traits<char>>' to
'unsigned int'
Error executing cl.exe.
Cpp1.exe - 1 error(s), 0 warning(s)
Ringrazio in anticipo.

 nel file seguente:
Compilato con il DJGPP non dà alcun errore.
EMG

dell istruzione vector<string> v (ii,eos)
Parecchie versioni della libreria standard C++ non comprendono
ancora il ctor-template che permette di costruire un container
direttamente da un'arbitraria coppia di iteratori.
Semplice e poco oneroso workaround: sostituire qualsiasi
ctor della forma
    contenitore<tipo> x(primo, ultimo);
con un ctor di default seguito da costruzione esplicita, ad
esempio, nel tuo caso:
    vector<string> b;    // inizialmente vuoto
    // e mo' lo riempiamo:
    copy(ii, eos, back_inserter(b));
Alex

    copy(ii, eos, back_inserter(b));
OK. Il tuo consiglio ha risolto i miei problemi di compilazione.
Ma mi si e' presentato un piccolo problema di LINK. Mi potresti
aiutare?
L' errore con Visual C++ 5.0 risulta:
==================
Deleting intermediate files and output files for project 'io_stream -
Win32 Debug'.
--------------------Configuration: io_stream - Win32
Debug--------------------
Compiling...
Cpp1.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
_WinMain@16
Debug/io_stream.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
io_stream.exe - 2 error(s), 0 warning(s)
==================

_WinMain@16
Si direbbe che tu stia facendo una "Win32 application" mentre
dovresti fare una "Console application"; e` questo il problema?
Alex