c++ string initialisieren
-
Wieso überhaupt ein Makro?
-
hustbaer schrieb:
Hä?
Ich meine "my" ist ein verdammt schlechter Namespace-Name bzw. auch ein verdammt schlechter Prefix für Makros.
Weil du vermutlich nicht der einzige bist der auf die Idee kommt "my" zu verwenden. Weil's halt nicht so doll einzigartig ist.=> Sinnlos
Aber das driftet schon wieder ziemlich weit OT...
Ich benutze das Prefix MY_ für Makros und alles andere ist im Namespace my.
Leute, die ihre Bibliotheken my nennen, werden sie wohl kaum veröffentlichen, also krieg ich von da keine Konflikte.
Und um etwas gegen das OT zu tun:
Deine Array-Begin/End-Makros: Kein C++11 Support?
-
@Arcoth
Ein Makro, weil nicht-Makro Lösungen alle diverse Probleme haben.
Mir hängt da ein verschwommener Informationsfetzen im Hinterkopf rum - ich meine man kann Templates nicht auf Dinge mit "no linkage" spezialisieren. Also sowas:typedef struct /* here be dragons, but no name */ { int foo; } FOO; FOO g_array[123]; ... MY_ARRAY_BEGIN(g_array), MY_ARRAY_END(g_array)
Und das geht dann nicht mit Template-Funktionen. Mit Makros geht es.
@Nathan
Richtig, kein C++11 Support.
Im Beitrag von SeppJ, auf den ich geantwortet habe, war ja auch die Rede von "C++98-Lösungen".
Und was das "my" angeht - ja, das geht so lange gut, bis du doch mal Code mit irgendjemandem Teilst der selbst auch das "my" Prefix verwendet. Also entweder du gibst ihm Code oder er dir oder ihr macht was zusammen - was auch immer. Und wie gesagt: wozu dann überhaupt irgend ein Prefix?
-
ich meine man kann Templates nicht auf Dinge mit "no linkage" spezialisieren.
Wie meinst du das?
Und das geht dann nicht mit Template-Funktionen.
typedef struct { int foo; } FOO; FOO g_array[123]; int main() { std::begin(g_array); }
kompiliert.
Ein Makro, weil nicht-Makro Lösungen alle diverse Probleme haben.
Diverse? Was denn für welche?