Article View: be.comp.programming
Article #3671[C++] preprocessor constructie - leuke implementatie van het Factory pattern
From: Jeroen Haegebaert
Date: Sun, 30 Nov 2003 10:44
Date: Sun, 30 Nov 2003 10:44
25 lines
1851 bytes
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-mailShow 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