C/Visual C - ANSI C++

 
Vista:

ANSI C++

Publicado por Slim (13 intervenciones) el 01/11/2001 18:26:14
Alguien me puede decir donde puedo conseguir el ANSI C++ que no sea Microsoft ni Borland es decir que sea C++ Standar.

De antemano Muchas Gracias.
Slim
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ANSI C++

Publicado por manuel (79 intervenciones) el 01/11/2001 19:38:57
hola. compiladores 'puros' en c++, no tengo idea, pero hay aquellos q no lo son PERO soportan el standard; o sea, puedes portar el codigo a otras plataformas. Incluso Borland tiene uno, pero no recuerdo la version(pero tiene. no se si es la version 5.0).
el gcc y g++ o gpp tambien es (bastante)portable.
yo utilizo el que viene en djgpp y los mismos programas los compile y corri en el g++ de linux(debian).
pero tambien, la portabilidad depende de las librerias q utilizes. Por ej: el gcc de djgpp (en dos)te permite usar la conio.h, que en linux no(aqui necesitas ncurses.h) . Pero en el caso del djgpp tambien puedes usar ncurses.h(aunque aun no lo he usado, pero hay), lo que te permitiria portar tus pantallas a linux; en otros compiladores no se.
en el caso de djgpp hay una caracteristica q no es portable: la llamada a fork(), porque d.o.s. no es multiproceso.
te recomiendo q visites la pagina de delorie: www.delorie.com.
(si se trata de portabilidad, personalmente lo encuentro mejor q vc++, tc++)
saludos
manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ANSI C++

Publicado por Googol (255 intervenciones) el 02/11/2001 23:08:24
El problema no solo es de las librerías. También lo es del código fuente. Por ejemplo, el Ansi C++ no permite algo así:

int i;
cin >> i;
int array_no_cte[i];
// ...

Es decir, declarar un array de tamaño no conocido en tiempo de compilación (vamos, que entre los corchetes, según la gramática de C/C++ debe ir una expresión constante). Sin embargo, el gcc lo admite.
Si tú utilizas todas las librerías estandar que quieras, pero haces algo como lo anterior, en el gcc compilará, pero en Visual C++ no.
Eso es porque el Ansi C++ tardó demasiado tiempo en fijarse; tanto que ya había compiladores por ahí rulando. Cuando quedó claro que eso no se podía hacer, era demasiado tarde; gcc ya se lo tragaba, y tuvieron que dejarlo para seguir compilando los programas que antes compilaban.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ANSI C++

Publicado por manuel (79 intervenciones) el 06/11/2001 04:36:26
cierto que compilara esas lineas mas...no trate decir que gcc sea un 'compilador puro estandar'.
aquello es una *caracteristica propia* de gnu.
para 'ajustar' y portar nuestro codigo podemos usar las opciones de la compilacion, que el gcc las tiene.
saludos
manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ANSI C++

Publicado por manuel (79 intervenciones) el 06/11/2001 04:39:09
una de las formas 'simples', para poder decidir por un compilador que soporta (o se ajusta a)el estandar:
If you are a novice and don't know how to see if a compiler is conformant, try this:

#include<iostream>
#include<string>

using namespace std;

int main()
{
string s;
cout << "Please enter your first name followed by a newline\n";
cin >> s;
cout << "Hello, " << s << '\n';
return 0; // this return statement isn't necessary
}

If an implementation cannot handle this simple program as written, it is not a good candidate for learning Standard C++ (if you cut and paste, beware of html for "less than" in the #include directives).
(stroustrup)
manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar