🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #3671

[C++] preprocessor constructie - leuke implementatie van het Factory pattern

#3671
From: Jeroen Haegebaert
Date: Sun, 30 Nov 2003 10:44
25 lines
1851 bytes
Ik ben net een generieke templated implementatie van het Factory pattern 
aan het bekijken, gevonden op 
http://www.codeguru.com/mfc/comments/40081.shtml

Er wordt de volgende preprocessor constructie gebruikt: 

// macros used for generating a unique identifier.
#define CAT4(a,b,c,d) CAT4_DELAY(a,b,c,d)
#define CAT4_DELAY(a,b,c,d) DO_CAT4(a,b,c,d)
#define DO_CAT4(a,b,c,d) a##b##c##d

// macro for registering class.
#define REGISTER_CLASS(name, ClassT, BaseT) \
	Factory<BaseT *>::Creator<ClassT> \
	CAT4(_the_creator,ClassT,_,__LINE__)(name)


De REGISTER_CLASS macro maakt dus een factory aan voor het type ClassT, 
derived van BaseT. De CAT4 macro maakt voor die factory een unieke naam 
aan. Tot zover ben ik mee.

Kan iemand mij echter uitleggen hoe die preprocessor constructie juist 
werkt ? Waarom gebeurt die CAT4 macro in 3 stappen ?

jeroen
Technical Details
Message-ID: <Xns944376DA741F0jeroenhaegebaerthotm@195.121.6.83>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!213.51.129.3.MISMATCH!newshub1.home.nl!home.nl!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!newsfeed.wxs.nl!textnews.wxs.nl!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,541b3c0d783254aa,start
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-11-30 02:42:33 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!213.51.129.3.MISMATCH!newshub1.home.nl!home.nl!feeder.enertel.nl!nntpfeed-01.ops.asmr-01.energis-idc.net!newsfeed.wxs.nl!textnews.wxs.nl!not-for-mail
From: Jeroen Haegebaert <jeroen_haegebaert@hotmail.com>
Newsgroups: be.comp.programming
Subject: [C++] preprocessor constructie - leuke implementatie van het Factory pattern
Date: 30 Nov 2003 10:44:41 GMT
Organization: Your Company
Lines: 25
Message-ID: <Xns944376DA741F0jeroenhaegebaerthotm@195.121.6.83>
NNTP-Posting-Host: 81.11.188.121
X-Trace: reader10.wxs.nl 1070189081 303 81.11.188.121 (30 Nov 2003 10:44:41 GMT)
X-Complaints-To: abuse@planet.nl
NNTP-Posting-Date: 30 Nov 2003 10:44:41 GMT
User-Agent: Xnews/5.04.25