[ MAD-MAX @ 08.03.2002. 14:56 ] @
Zasto ovo ne mogu da kompajliram ni sa VC++6 ni sa BC++ 5.02 vec samo sa GCC-om u Linuxu?

#include <vector>
#include <iostream.h>
#include <string>

int main()
{
vector<string> vektorcic;
char* tmp;
while ( tmp!="q"){
cin >> tmp;
vektorcic.push_back (tmp);
}
return 0;
}
[ Dragi Tata @ 08.03.2002. 16:05 ] @
Zaboravio si

using namespace std;

A ako radi u gcc-u, to samo znači da gcc nije u skladu sa standardom. Ovo ne treba da radi u standardnom C++u
[ Dragi Tata @ 08.03.2002. 16:07 ] @
I da dodam da ti program neće raditi dobro čak i kad ga iskompajliraš. Pogledaj liniju

while ( tmp!="q")

Ili koristi strcmp, ili deklariši tmp kao string.
[ leka @ 08.03.2002. 17:47 ] @
Dragi tatko, kao sto dobro znas svako ima svoje stringove vi Visualci koristite najvise CString (to je valjda MFC), Borland koristi AnsiString koji zapravo i jeste ANSI - to je standard (davno davno odobreno kao standard...), e sada to sto GCC koristi "totalni standard" to je druga prica. GCC ce uvek da koristi "namespace std", on je RODJEN na tome Ili je mozda obrnuto? Svejedno, STD je za GCC nesto interno, svoje.

Mozda to nije u skladu sa nekim standardom, ali recimo ja dobro znam da se u Borland C++-u ne treba uopste pisati neka linija tipa "using namespace ovo-ono" - ako nema namespace, koristice svoj namespace, interni. Naravno, to moze da se sredi, ali po "difoltu" je tako...

Siguran sam da je tako i u VC++.

[ leka @ 08.03.2002. 17:50 ] @
Zaboravio sam da dodam da je tata maksimalno u pravu dalje kad je rekao da program nece raditi... :)
[ Dragi Tata @ 08.03.2002. 18:02 ] @
Citat:
leka:
Dragi tatko, kao sto dobro znas svako ima svoje stringove vi Visualci koristite najvise CString (to je valjda MFC), Borland koristi AnsiString koji zapravo i jeste ANSI - to je standard (davno davno odobreno kao standard...), e sada to sto GCC koristi "totalni standard" to je druga prica. GCC ce uvek da koristi "namespace std", on je RODJEN na tome :) Ili je mozda obrnuto? Svejedno, STD je za GCC nesto interno, svoje. :)

Mozda to nije u skladu sa nekim standardom, ali recimo ja dobro znam da se u Borland C++-u ne treba uopste pisati neka linija tipa "using namespace ovo-ono" - ako nema namespace, koristice svoj namespace, interni. Naravno, to moze da se sredi, ali po "difoltu" je tako...

Siguran sam da je tako i u VC++.


I, bre Leko! Govorim o ISO standardu za C++ iz 1998. Standardna C++ biblioteka po tom standardu mora da pripada namespace-u std, a ne "default" namespace-u. CString i slične stvari su izmišljene pre pojave namespace-a i standarda, i to nema veze sa standardnim C++om, već je deo MFC-a. Pogledaj Bjarne-ovu knjigu ili ISO standard, pa ćeš da vidiš da moraš da eksplicitno navedeš namespace std da bi mogao da radiš sa standardnom bibliotekom. Inače, VC pre verzije 7.0 nije bio posebno dobro usklađen sa standardom, ali čak i kod VC 6.0 si morao da navedeš namespace std. Borland je mnogo bolji što se tiče ISO kompatibilnosti, i verujem da tamo nikad nije ni moglo da se kompajlira onako nešto.

I opet da te pitam (nikako da mi odgovoriš): Šta je sa wostream-om u gcc-u.?Jednostavno ga nema. Udario sam grep wcout i ništa nije mogao da mi nađe ni kod gcc-a koji sam dobio uz Mandrake 7.2 ni kod MingW-a. U čemu je štos?