Article View: de.comp.lang.c++
Article #2189Re: typedef in einem Makro
From: Walter Doerwald
Date: Thu, 18 Apr 1996 23:27
Date: Thu, 18 Apr 1996 23:27
40 lines
1789 bytes
1789 bytes
Bernhard Ruch schrieb in <3174CB7F.41C6@studi.epfl.ch> folgendes: > Ist es moeglich, folgendes Problem mit Makros zu loesen? > > Ich moechte, fur eine beliebige Klasse, einen neuen Datentyp > definieren (einen Pointer auf die Klasse), und eine Funktion, > die diesen Pointer als Argument hat. > Der Name des Datentyps sollte aus dem Namen der Klasse + "Pointer" > bestehen. > > z.B. fuer die Klasse "Object": > > typedef Object* ObjectPointer; > > int Display (ObjectPointer pObject); > > > Ich versuchte es mit folgendem Makro: > > > #define CLASSPOINTER(CLASSNAME) typedef CLASSNAME* CLASSNAMEPointer; \ > int Display (CLASSNAMEPointer pCLASSNAME); > > CLASSPOINTER(Object) > > > Das Problem ist nun, dass "CLASSNAME" in "CLASSNAMEPointer" nicht durch > "Object" ersetzt wird > > Gibt es irgendeine Methode, einen Teil eines Typ-Namens (oder Variablen-Namens) > in einem Makro durch ein Argument zu ersetzen? (z.B. $(CLASSNAME) wie im Makefile) Theoretisch mit CLASSNAME##Pointer Aber man sollte immer so weit wie möglich vermeiden mit Makros zu arbeiten. (Insbesondere natürlich mit diesen Token-Pasting-Macros) Und in diesem Fall sehe ich auch eigetnlich keinen besondere Grund mit sowas zu arbeiten. Bis demnächst... Walter Dörwald
Technical Details
Message-ID:
<45916022@data.franken.de>Path:
arc1-ca.pugleaf.net!data.franken.de!postmasterReferences:
<3174CB7F.41C6@studi.epfl.ch>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!data.franken.de!postmaster Newsgroups: de.comp.lang.c++ References: <3174CB7F.41C6@studi.epfl.ch> From: "Walter Doerwald" <walter@data.franken.de> Date: Fri, 19 Apr 96 00:27:56 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-NewsReader: IntuiNews 1.3a (7.9.95) Subject: Re: typedef in einem Makro Message-ID: <45916022@data.franken.de> Organization: Kommunikationsnetz Franken e.V. (Region Bayreuth)