🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #2189

Re: typedef in einem Makro

#2189
From: Walter Doerwald
Date: Thu, 18 Apr 1996 23:27
40 lines
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!postmaster
References: <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)