wie ohne makro #define a b machen?
-
Hallo,
ich lese ständig dass in C++ keine makros verwendet werden sollten.
wie sollte ich dann aber ein C-artiges #define my_variable this_variable machen?danke
-
wozu willst du sowas machen?
-
mit
const int myVar = thisVar;
-
naja ....es gehört doch zu "besserem" programmierstil wenn man später mal z.B eine variable vom namen her ändern will oder nicht? also eine globale variable.
einmal definiert durchzieht sie das ganze programm...
-
und wenn sie aus einer bibliothek ist namens:
MPI_Comm z.B ?also ich würde gerne sowas machen:
#include <mpi.h>
#define MPI_Comm My_Comm
-
uiuiui schrieb:
naja ....es gehört doch zu "besserem" programmierstil wenn man später mal z.B eine variable vom namen her ändern will oder nicht? also eine globale variable.
Es stimmt schon, dass man Konfiguration zentralisieren sollte. Aber globale Variablen gehören trotzdem definitiv *nicht* zum besseren Programmierstil.
uiuiui schrieb:
und wenn sie aus einer bibliothek ist namens:
MPI_Comm z.B ?also ich würde gerne sowas machen:
#include <mpi.h>
#define MPI_Comm My_Comm
Wozu solltest Du das machen wollen? Für sowas schreibt man sich ne Adapter- oder Fassaden-Klasse. Abgesehen davon gibt es ne C++-Bibliothek für MPI (nämlich Boost.MPI), die fast sicher besser geeignet ist als die von Dir verwendete Bibliothek.
-
Abgesehen davon gibt es ne C++-Bibliothek für MPI (nämlich Boost.MPI), die fast sicher besser geeignet ist als die von Dir verwendete Bibliothek.
also ich habe hier ein C-Programm das einen haufen an mpi-command nutzt. Ich hingegen schreibe in C++ und wollte die MPI-Sachen nachbauen. Jetzt weiß ich nicht ob ich eher mpi.h benutzen sollte bzw. die boost.mpi.
Wichtig ist wohl dass ich mein programm auf einem cluster laufen lassen werden bzw. dort auch kompiliere - zur nutzung der boost - bibliotheken - bin ich dazu gezwungen auf dem cluster was zu installieren ? Denn das geht nicht...
-
zu deiner vorherigen Frage:
#include <mpi.h> #define MPI_Comm My_Commkannst du doch einfach in einem namespace packen

namespace MPI { #include <mpi.h> };...
-
eh ....das verstehe ich noch nicht ganz leider.
kann ich denn über den namespace meine variable selbst definieren oder wie meinst du das mit den namespaces ?