Encabezado para que los programas puedan ser compilados con varios compiladores. Más...
#include <fstream>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <stdexcept>
#include <vector>
Ir al código fuente de este archivo.
Namespaces | |
namespace | std |
Definido por la biblioteca C++ estándar. | |
namespace | ADH |
ADH son las siglas de | |
'defines' | |
#define | ADH_port_h |
Evita la inclusión múltiple. | |
#define | OPEN_namespace(N) namespace N { |
Abre namespace "N" . | |
#define | CLOSE_namespace(N) } |
Cierra namespace "N" . | |
#define | USING_namespace(N) using namespace N |
Usa namespace "N" . | |
#define | INCLUDE_fstream Truco para "#include <fstream>" portable |
#define | INCLUDE_iomanip Truco para "#include <iomanip>" portable |
#define | INCLUDE_iostream Truco para "#include <iostream>" portable |
#define | INCLUDE_list Truco para "#include <list>" portable |
#define | INCLUDE_map Truco para "#include <map>" portable |
#define | INCLUDE_stdexcept Truco para "#include <stdexcept>" portable |
#define | INCLUDE_vector Truco para "#include <vector>" portable |
#define | OPEN_namespace(N) namespace N { |
Abre namespace "N" . | |
#define | CLOSE_namespace(N) } |
Cierra namespace "N" . | |
#define | USING_namespace(N) using namespace N |
Usa namespace "N" . |
Encabezado para que los programas puedan ser compilados con varios compiladores.
Este archivo de encabezado permite compilar los programas de adolfo@di-mare.com
usando cualquiera de estos compiladores:
"namespace"
Para permitir que el código sea compilador con el Borland C++ v3.1, que no permite usar "namespace"
, los programas están escritos usando estas macros, que sirven para iniciar, usar y terminar un "namespace"
:
OPEN_namespace(N) // namespace N {
USING_namespace(N) // using namespace N
CLOSE_namespace(N) // } // namespace N
"namespace"
Si por alguna razón conviene omitir todas las definiciones de "namespace"
basta declarar la macro NO_namespace
antes de incluir este archivo de encabezado:
define NO_namespace
include <ADH_port.h>
El efecto de usar NO_namespace
es que, efectivamente, las 3 macros quedarían definidas así:
OPEN_namespace(N) // no abre namespace N
USING_namespace(N // no usa namespace N
CLOSE_namespace(N) // no cierra namespace N
"#include"
El compilador C++ de Visual Studio .NET usa nombres de archivos de encabezado que no tienen el sufijo ".h"
. Por ejemplo, para usar un flujo de entrada, el programador debe incluir estas líneas:
# include <iostream.h> // con ".h"
# include <iostream> // SIN ".h"
Para incluir el archivo de encabezado correcto es necesario establecer cuál compilador se está usando. Para evitar usar varias directivas # ifdef
, se puede definir una macro que indica cuál archivos de encabezado incluir. No todos los encabezados estándar están incorporados aquí, pero sí los más usados. Por ejemplo, para usar el archivo de encabadezdos <iostream>
basta incluir en el código fuente la definición de este macro:
#
define INCLUDE_iostream
Lo usual es encontrar código escrito para la versión vieja del compilador de Microsoft, el MSC++ v6.0 o anterior. Con frecuencia, basta hacer estas modificaciones para que el código pueda ser compilador con MSC++ .NET:
using namespace std;
".h"
de los encabezados estándar [por ejemplo, cambiar <iostream.h> por <iostream>]".h"
cuando se usan archivos de encabezado de la biblioteca estándar C [por ejemplo, cambiar <stdlib.h> por <cstdlib>]En algunas ocasiones conviene más usar el compilador BC++ v3.1 porque es un compilador que requiere muy pocos recursos traducir programas.Desafortundamente, el BC++ v3.1 tiene varias restricciones de funcionamiento entre las que se destacan éstas:
"bool"
"namespace"
Algunos ejemplos C++ son sólo puedes ser expresado correctamente usando el lenguaje C++ moderno, est ndar. Pero muchos otros no requieren tanta expresividad por lo que pueden ser compilados con BC++ v3.1. Para lograrlo es necesario usar.
#ifndef String_h #define String_h // Evita la inclusión múltiple #define INCLUDE_iostream // ==> # include <iostream> #include "ADH_port.h" OPEN_namespace(ADH) USING_namespace(std); // es necesario agregar el punto y coma class String{ // ... }; CLOSE_namespace(ADH) USING_namespace(ADH); // es necesario agregar el ";" ADH::String& operator<<( std::ostream COUT&; ADH::String& s); #endif // String_h
#ifndef String_h #define String_h // Evita la inclusión múltiple #include <iostream.h> #include "ADH_port.h" // namespace ADH { // ==> eliminado ; // using namespace std // ==> eliminado class String{ // ... }; // } ==> eliminado // using namespace ADH; // ==> eliminado // ADH && std ==> eliminado ::String& operator<<( ::ostream COUT&; ::String& s); #endif // String_h
#ifndef String_h #define String_h // Evita la inclusión múltiple #include <iostream> // sin ".h" #include "ADH_port.h" using namespace std; // Agregado en "ADH_port.h" namespace ADH { using namespace std; class String{ // ... }; } // namespace ADH using namespace ADH; ADH::String& operator<<( std::ostream COUT&; ADH::String& s); #endif // String_h
Definición en el archivo ADH_port.h.
#define ADH_port_h |
Evita la inclusión múltiple.
Definición en la línea 159 del archivo ADH_port.h.
#define OPEN_namespace | ( | N | ) | namespace N { |
Abre namespace "N"
.
< Definida para Borland C++
< Definida para Micrsoft C++
Definición en la línea 261 del archivo ADH_port.h.
#define CLOSE_namespace | ( | N | ) | } |
Cierra namespace "N"
.
Definición en la línea 262 del archivo ADH_port.h.
#define USING_namespace | ( | N | ) | using namespace N |
Usa namespace "N"
.
Definición en la línea 263 del archivo ADH_port.h.
#define INCLUDE_fstream Truco para "#include <fstream>" portable |
Definición en la línea 185 del archivo ADH_port.h.
#define INCLUDE_iomanip Truco para "#include <iomanip>" portable |
Definición en la línea 186 del archivo ADH_port.h.
#define INCLUDE_iostream Truco para "#include <iostream>" portable |
Definición en la línea 187 del archivo ADH_port.h.
#define INCLUDE_list Truco para "#include <list>" portable |
Definición en la línea 188 del archivo ADH_port.h.
#define INCLUDE_map Truco para "#include <map>" portable |
Definición en la línea 189 del archivo ADH_port.h.
#define INCLUDE_stdexcept Truco para "#include <stdexcept>" portable |
Definición en la línea 190 del archivo ADH_port.h.
#define INCLUDE_vector Truco para "#include <vector>" portable |
Definición en la línea 191 del archivo ADH_port.h.
#define OPEN_namespace | ( | N | ) | namespace N { |
Abre namespace "N"
.
< Definida para Borland C++
< Definida para Micrsoft C++
Definición en la línea 261 del archivo ADH_port.h.
#define CLOSE_namespace | ( | N | ) | } |
Cierra namespace "N"
.
Definición en la línea 262 del archivo ADH_port.h.
#define USING_namespace | ( | N | ) | using namespace N |
Usa namespace "N"
.
Definición en la línea 263 del archivo ADH_port.h.