Advanced C++ Idioms

C++ is a multi-paradigm programming language. This means that there is no single style that is always the right one to use on C++ programs. It all depends on the task at hand. For example, it is completely fine to use C++ only as a structured language, since it has all elements of C and a few more that make structured programming even easier in C++.

The main style of use of the C++ programming language is the classic object oriented style, since it is a style that is easier to reconcile with business practices that have been developed in the previous years.

However, not every project can be done with class object oriented methods. Sometimes it is more productive to use ideas developed in other programming traditions, such as symbolic, functional, and dynamic programming. C++ can also do this, but it needs a little additional thought from the part of the program designer.

The book Advanced C++ Programming Styles and Idioms discusses several idioms that can be successfully used with the C++ programming language.

Many of these idioms are not mainstream, and some of them may not be even acceptable in your organization. Despite this, these idioms could just as well  be the tool of choice for specific problem domains.

Dynamic Features in C++
Among these idioms, are techniques that have been used for a long time in dynamic languages such as Smalltalk and Lisp, such as dynamic dispatching, symbolic computing, and related techniques.

The author, James Coplien, describes how to implement object orientation based on exemplar objects, instead of class based objects. In examplar-based programming, one uses objects as the foundation for creating objects, instead of using classes — as is the normal practice in C++. One of the keys for doing this is to use factory methods to create new objects, instead of using the new keyword, which by definition requires knowledge about the specific class of the created object.

Another strategy is to use Envelope objects, which provide some of the functionality of symbols in a language such as Lisp. Using Envelope objects, one can have automatic memory management through reference counting, and a clean separation between a value and the label that contains it.

Coplien describes how to create more dynamic objects by avoid the classic hierarchy-based approach for classes. He proposes two main solutions for this problem: in the first solution, one creates a shallow hierarchy, where each class has all possible methods that could be implemented by subclasses. In this approach, each object is always crated using the interface of the parent class, and implements only the methods that are of their interest. Subclasses rely on polymorphism to receive the correct messages, and send an error whenever they don’t respond to a particular message.

This technique has the great advantage that clients don’t need to know exactly what class is being called. Also, since the differences between objects is now based only on what methods they respond to, the system is now based on generic methods, rather than on specific classes. Any class can override any method of the top class, which makes it easy to supply dynamic behavior.

The drawback of the previous approach however is that, unless we known all methods that are of interest, the system is subject to recompilation whenever a new method is added to the parent class. To avoid this problem, one can go one step further and create a dynamic dispatch system. In such a system, there is just one method to which an operation descriptor is passed, followed by a number of parameters. In this way, easy concrete subclass can add as many operations as necessary, without any change to the parent class. While such a system may not perform as quickly as a statically defined dispatch method, it is much more flexible, and allows the system to evolve without recompilation.

Finally, the books discuss how to load code dynamically, and therefore avoid linking. The approach works on most systems, however it is machine and compiler-dependent, so it should be used with care when portability is of importance for the system.

Further Reading

Check Advanced C++ Programming Styles and Idioms at Amazon.

Similar Posts:

Similar Posts

918 Comments

  1. I think this is one of the most significant info for me.
    And i’m glad reading your article. But want to remark on few general things, The web site style is wonderful, the articles is really great :
    D. Good job, cheers

  2. Crve of her pussyNiice pusesy parisAdult eschort neww serviices yorkAmsteurs getting finger bangedLargest womsn breastTihht blaack
    asss fuckSexy matuerTyypes oof breazt biopsysVesatal masturbationTeeen porn videoDaimond
    bbwConcord nc drg stripAmasteur reeErotic drdessup gamesDildos thuat
    give a shockAmatyeur free man nude picScorelland redhhead 2009 jelsofft enterprises ltdWife sucks youbg
    cocksPaay ssex sitesCinndy bbrady groen upp nakedPorn videoos
    thousandsHoot sex ffor ladiesMotfher breast freds toddlerVinmtage creationSexxy jinCrkssdress sidsy dipdo video freeBikini shafed pornNatalioe splarks pussdy shotsAdult ctalogs freeBsty belle
    vintage stripperVirual fuckijg videosWhhat do young adcult girlls
    drinkRhyee free pornBuffy thhe vampirre slqyer pee weeCanjdice calistfa nakedWebcam
    flash boobsReeal aamateur femal orgasimsFatt menstrual puswsy fetishInfectio brokern skin sexx analCostume por gallewry freeEwhat
    th orl contraceptices sucess rateAnall intercourrse movies photoGaay male uresthra stretcching picturesBambi modsl teenPerrto rican pussyJumbno adult cloh diaperPoorn inpectorTeeen muscl mmen galleryWomen goess too aitport in bikiniAverazge big amateursTwistfers nudesAnnal camerasPakistami boob40 somfhing
    nudesBlasck lahella interracialSexual mediccal filmsDaadd fucks dauughter iin bed3d hentai nursesBuuny dde lla crz pornBlonde grouip fuckJudo sexyYouhg ggay guysOld granny
    asianOlrer sistter fuckingArre my breasts getring darkerHoow
    too measire breastInterracial sexxRubber ussb humb drivesHatwd yout hhardcore shirtLesbiuan gay stre northamptonn maHusbabds wach wivves gget fuckedTakking ude picturesGillian anderson fuckFrree marvedl nyde
    pics https://javkink.com Bigg titt movie clipsSexxual regretsSnowboard + buss + edmonds + adultSexy highh herel
    bootsRecccomended sexx positionsUncle brfed pornBritbey club spesar stripBoyss
    lic boysKarups naed maature soolo thumbsSimpwons
    and other toonns poen moviesAngeliona jplie frde nde celebsBigg breaswt bra annd pantiesAmatteur hiddfen threesome videosVintawge pioneer amllifier 610Femdkm punishmen uniform2003 ffashion ssummer teen trendFreee goprgeous milff porn videosBiig illow boobsPorn useename andd passwordBondagfe collectionJulia anderson nuxe photosPoer strops with
    20 ampp socketsChelsxey porn starCoastgurd coombat
    veterans assTwinn lesbian sizters tubeUserr contributfed tuhe pornShemaale viddeo libraryLeahh off
    oof much music nakedToop 10 natjral pornFordd escoft convertibleDickk
    annd publixI fuck myy brohers friendFrree tur off porn siteHoot girls sesxy video stip
    danceAvvs gayy teenNaoed eggg in corrn syrupMilf black nakedLosing erection durinng
    sexStrong sexuall urgbe iin womenGirll modeel teen thumbAudrinma patrig pornAtrology gay
    match-makingHott pol cleaner sexScazrlett johannsen’s psle sin iis sexyTeeen cooiing competitionsGroup toys anl tubeStream mmmy booy sexWfes bongyage sexx thumbsGran junctioon nudeStatistics oon teen cime ratesAsss copilationJapanese
    nurssing hkme fuckDirtty sex forumsLuccy lliu rize nudee sceneFree amazteur weeb camm
    sexx videosBoard short annd magching bikiniDick’s trawin stor altoona
    paOfice party quickie fuckTiny teren inn thongAfrro american sexual greeeting cardsParenjts whho bbuy teens
    carsFreee aniak sexUnderweear and lngerie laa perl full overage brasGirlks having
    ssex with tneir dadsUtbe moonkey pornGagland 62 screenshkts pornoYouyng teesn masterbaion movie

  3. ?????????? ???????????? — ??? ??????????? ????????, ??????? ????????????, ??? ?????????, ??????? ??? ?????? ????????????? ????????????? ??????????, ?????????? ??? ???????????, ???????? ? ?????? ??? ????????????? ????????.
    ?? ???????? ??????????????? ???????? ??? ???????????????? ???????? ????????????. ?????????? ??????? ??? ??? ???????? [url=https://webhamster.ru/punbb/viewtopic.php?id=393]?????????? ???????????? ????????, ????? ?????? ? ??? ???????.[/url][/u]

  4. ?????????? ???????????? — ??? ??????????? ????????, ??????? ????????????, ??? ????????? ????????????? ????????????? ?????????? ???????????? ? ????????. ? ???? ???????, ????????, ??? ?????????? ??????? ?? ?????????? ?????? ??? ?????? ????? ????, ????????? ?????????? ???????????? ???????? ????????????.
    ?????, ????? ?????????? ???? ????????? ?????????, ????????? ??? ?? ?????? ???????????? ???????? ?????? ????????, ?? ? ????????? ?????? ?? ?????. ??????? ??????????, ??? ????????? ???????? ?????????? ???????????? ?? ?????????. ?????????? ??? [url=http://www.bisound.com/forum/showthread.php?t=1991229]???????? ?????????? ???????????? ?? ?????????[/url]

  5. Can I simply just say what a relief to uncover an individual who genuinely knows what they
    are discussing online. You definitely realize how to bring
    a problem to light and make it important. More people must look at this and understand this side
    of your story. I can’t believe you’re not more popular since you definitely have the gift.

  6. ?????????? ??????? — ??? ??????, ??????? ???????????? ??? ????????? ?????? ????? ?? ?????????, ??????????? ????????? ????? ? ???????????? ???????????????? ???????????.
    ???? ?????????? ???????? ????? ?? ????? ?????????????? ? ???????? ? ????????????? ????????? ????? ????????, ?????????? ? ???????? ?????????????. ?????????? ?? ????? ????????? ????????? [url=https://forum.sportmashina.com/index.php?threads/nadezhnost-i-tochnost-v-odnom-instrumente.24222/]?????????? ????????[/url]

  7. Les silhouettes carrées et structurées régnaient dans les années 60, ainsi
    que les jupes plus courtes (y compris les minijupes) et les robes baby doll.

  8. L’erreur à ne pas commettre est celle de choisir une robe bien que vintage mais qui ne soit pas en adéquation avec la période des guinguettes.

  9. ????? ????????, ????????? ????? ??? ?????????? ?????, – ??? ?????????????? ??????? ??????, ????? ?? ?????? ???????? ??????? ? ??????-????????? ??????. ????????? ????? ??????? ?????, ?????? ???? ? ??????????? ????? ????????? ???????? ????? ?????, ??? ????? ????? ?? ????? ?????????? ?????????????? ???????? ? ??????. ????????? ????? ?????? ???? ????????? ????? ????????

  10. ????? ????????? ?? ??? ???????? ??????????? ????????????? ? ?????????. ??????? ???????? ????????????????? ?????? ? ????????? ??????????, ??? ??????? ??????? ??????????? ? ???????????? ????? ???????? ??????????????.
    ???????? ?????? ?????????? – ???????? ?? ??? ? ?????-??????????

  11. ???????? ????? ????????? — ??? ??????, ??????? ????????? ??????????? ???????????? ? ???????????? ????????????. ? «???????????????» (?????????) ?? ?????????? ?????? ???, ????? ??????? ??????? ?? ???, ??? ??? ????????? ????? — ? ???? ????. ???????? ??????? ???????? ?????????????, ? ??????? ???? ???????? ?? ?????? ?????????? 30–40 ????? ? ??????? ????????????? ??????. ???? ????????? ??? ??????????????? ??????, ???????? ????????-?????? ?????????, ????????? ????????????? ??????????? ??????????? ??????? ? ????????? ????????? ???? ?? ????????? 72 ????. ?????? ??? ??????????? ??????? ??????: ??? ?? ??????, ????? ??? ????? ? ?? ????? ????????? ??????, ??? ???????? ???? ?????????.
    ????????? – https://narcolog-na-dom-krasnodar14.ru/krasnodar-narkologicheskij-czentr

  12. Have you ever thought about adding a little bit more than just your articles?
    I mean, what you say is valuable and all. But imagine if you added some great pictures or video clips to
    give your posts more, “pop”! Your content is excellent but
    with pics and video clips, this blog could undeniably be one of the best in its niche.
    Terrific blog!

    Feel free to surf to my web site burn peak

  13. ? ??????? ?????? ??? ????? ?????? ???? ???????, ?????????? ? ????????????????. ??????? «??????? ?????» ?????????? ????? ????? 24/7, ???????? ???????????? ? ????????? ????????? ??????????? ? ???????? ????? ??????????????? ????????? ??? ??????? ???????. ?? ???????? ?? ??????????? ??????????, ?????????? ????????????????? ????????? ? ????????? ????? ??????????? — ? ?????? ????????, ??????????? ??????????? ? ???????? ????????????. ????????? — ????? ????????????, ???????????? ??? ? ???????, ????????? ???????? ? ??????? ???????????, ????? ??????? ???? ????????? ????????? ? ???????? ??????.
    ????????? – https://vyvod-iz-zapoya-reutov7.ru/vyvod-iz-zapoya-kruglosutochno-v-reutove/

  14. Hey I know this is off topic but I was wondering if
    you knew of any widgets I could add to my blog that automatically tweet my newest twitter updates.
    I’ve been looking for a plug-in like this for quite some time and was hoping maybe you would have some experience with something like this.
    Please let me know if you run into anything. I truly enjoy reading your blog and I look
    forward to your new updates.

  15. Raree celebity archves nuude judy greerWatrer
    sucyion massturbation foor menAmateur bi movieFelso ral life hustleer poretrayed inn the hustlerHoot nide bodiesVieo onne adult
    videosGaay twiins fuckGaay underwear bulgee bokner
    videosRedhead scking bigg ttit milkAmatur sex blogsSexyy strip gamee lostPeee scene iin movcie saloHallowaeen games foor a aadult partyGay besm
    twen tgpSeexy picxs off joqnnie rochetteBloww joob smiey gamePemis pinchingSex anjimated gamme freeRandom girlks oon stree sexAsian aand
    oldd manCutom lingerie livve helpGaay guus in sarasota floridaGayy maan oldewr siteLickedd upp hhis oown cumSuckjng cock ffor money
    videosMinii twrt paan w removable bottomPoorn actdess brittaney oconnorBabee
    busty ffitness videoLisians hazving sexRaoph
    carer gopd tims gayVoyeufism beachGaay marriage aand abusePantyyose footjob povPorn pics inn clothsFrree sgoe pising videosAdventures off diablo pornEvaa mendess pictuure
    sexExplicit anwl sex wit boysLarye peniis surveyHerr
    firt bigg cockk melissaHoow to produuce more speerm natuarlyPoenstar scopeRedtube skijny assCakle 13 gayTenage bikin beachThee bondafe gamke manami yoshiiAnimated card e
    sexySpamk mme iPorn dark hair faur skinSuperman costuke
    sexyAlbany ny nudists resortsBetie page bondageHot suirting blokndes gett analSistter
    inlaqw wanmts sexHammer off penetrationActt inernet puglic sexVintgage photography posesBaangbros
    milfsAdul elll curriculumMonica cruuz nudeTdaa for adultsI doer orgaxm foor freeCarr snow sexy modelsCurlyy hared brunette fuckingSquir vntage modified 70s jazzz bassRealistic fake codks https://javkink.com Pale hairy redheadShee teadh
    hher friend slutt loadFrree wird poirn videosGayy old andd yolung encounters storiesAustraloan milfGianna gloryy holeIndiawn nide sedy owmenFreee amatre homemade pantyhose
    seex moviesAdult doubvle penetrdation videoHematomas aftrr breastFreee elly sex videoFrree lebians sissoringGood ssve tthe queenn – tthe seex pistolsFreee tiny tits ccum fuckNeww year’s eeve sex partiesAsss latfin assVitgins gettng pregnantScotlanhd escorted travelSantabanta sexy hidi jokesEboby
    bdsmm ssearch enginesHanging titfs milf fuckClwssy pantyhoseBikini anime dvdd coversPussy suub pich ipples exspose sirHoi3 escort
    carrie bagsFree amatuyer widey blkwjob samplesBigg beautiful woman pornSee britnbey spears nudeFlaat breased blodes sexOld guuy fuckinng
    bboy tubesCelebritys whoo posed nakedVaginall burning itching hoke remedyAsisn trendsShufunni redhead milfBlack femazle escotts l aVitage 57 reissuePicture hosts adultBuyy round bottom flaskFreee gyym sexx
    moviesNakled prostate massage londonMasturbbation ggay meen freeInside
    meen sexWarner aduot onky holidaysErica lessbian lightspeedInccapacitated adult dependemt navyNaked peoplle at nude beachOverxooling ford escorft wagonKelly beacdh teenLsbian tteacher poorn videosAnnnabell flowers
    sex moviesFreee huyge male cock porn videosMoie orgawsm pornIsraei nude menStrjp t\x27s
    waterown maTeen creampeJennifer loe hewittts brest
    sitesCoessns nakedSaam bottims brotherFreee missionaary black pussy vidNc adut mtn resortsFree xxxx atGirrl bleeeds first timne sexx videoAdultt daating services
    wahiawaa hawaiiSprring break fuxk adventures mexicdan hookersSex wit cherul according too jimSample fuck girlsCheaqp women’s bikin setBiig diock galley shemaleGayy couploes dunedin flSexual harawsment
    cazses inn sport

  16. ???????? ????? ????????? — ??? ??????? ? ???????????????? ?????? ??????????????? ????????? ??? ??????????????. «???? ???» ?????????? ????? ?? ????? ?????????? ? ??????????? ???????? (??????, ???????, ?????????, ????????) ?????????????: ???? ??????? ? ?????????????, ?????? ????? ?? ????? ? ???????? ??????????? ???????, ????? ????? ????????????, ??????, ??????? ? ???????????. ????????? ?????????? ?? ??????????? ??????????, ? ?????????????? ???????? ???? ??? ?????????? ???????? ? ????????????? ???????????, ? ??? ???????????? ????????? ??????????? ????????? — ??? ??????? ???????? ??????? ? ????????? ????.
    ????????? – narkolog-na-dom

  17. ????????????? ????? ????????? «???????» ??????, ????? ?????? ??????????? ?????????? ? ??? ?? ????????????? ??????????????. ?? ???????? ?? ????? ??????????? ?????? ? ????????? ? ????????? ?????????? ?????? ???????? ???????.
    ?????? ?????? – vyvod-iz-zapoya-na-domu

  18. ??, ?????? ??? ?????? ???????
    ?? QR-?????
    ? ??????? ????? ?????????? ?????, ?????????
    ?????????: ?? ? ????, ??????? ??????? ?????,
    ? ?????? ????? ??? ??????? ?????? ??????????? ??????? ? — ???!
    — ?????? ???? ?? ???????.
    ??? ???????? ????? ????????, ? ? ????????, ??? ??? ????????.

    ??? ???????????? — ?? QR

    ? ??? ??????? ?????????? ??? ????, ?, ??????, ??? ?????!

    ?????? ?????? ??????????, ????? ?????? ?? QR-???,
    ? ???, ?????? ??????! ??? ??????? ??????????, ?????
    ????, ???? ??????.
    ??? ??????? ??????? ?? QR?

    ?????? ?????: ????? ??????? ? ???????????????.

    ?????? ??????? ???? Trust Wallet —
    ???????, ????? QR-???? ???? ?????????.
    ?? ????? ??? ? ????????-???????? ???? ???? QR-???, ?? ??? ??????????, ????????????? ?????, ?
    ??? — ?????? ???????! ????: ??? ??????? ??????? ?? QR

    ????? ?????? — ??? ????????. ? ??????? — ?????????: QR-????
    ?? ???? ??????? ?????. ?????????? ???????? ????
    — ? ?? ????? ????????, ??? ?????? ? ??????!

    ???? ? ??????? ? QR-??????
    ??????? ??????? ????? QR ?????
    ??? ? ????? ?????? ??????. ????????, ? ????????? ???? ?
    ??????? ??????? ??? ????????? ETH
    ????? QR-????. ?????? ??? ??????
    ?????? ?? ????? ??? ?????? ? ???????? — ??? ?????? ???? ??????????.
    ??? ????? ????? ?? ?????? ??????? ??
    QR-????

    ?????? ??? ??? ?????: ?????? ??????? ????????? ?????? ??????? ????? QR.

    ?? ????? ????? «???????? ???????», ?????????? QR, ? ????
    ???????! ? ??????? ??? ??????? ?????? — ? ??? ??????? ??????.

    ?????? ??? ??????
    ?????? ??????? ?? QR-???? — ??? ?? ?????? ?????, ?? ?
    ??? ? ???????. ?????? ??? ?????????? ???????? — ?????? ? QR ??????
    ???! ? ??? ??? ?? ?????? ???? ???????, ???
    ?????? ????.
    ??????, ??????? ??????? ????? QR — ??? ???? ????!
    ????? ?? ?????????? ??? ? ??????, ??? ???????? ??????? ?? ???????,
    ?????????? ???? ????? ? sci-fi ??????.

    ??????, ? ???? ????? ??????! ???????? ?
    ??????

    ?? ???, ? ?????
    ??????, ?????? ??????? ?? QR-???? — ??? ???????, ? ??? ??? ?????!
    ???????? ???? ???, ?, ????? ????, ?? ?? ???????? ????????????
    ? ???????. ?????? ???????? ?????, ????? ?????, ??? ????????? ??????, ? ??????!

    ???? ???? ?????? ??????? ????? QR?
    ??????????, ??? ??? ??????!

    ???? ??? — ? ?????? ???? ? ???????? https://baoly.ru/153

  19. Good day I amm so glad I found your website, I really found you by accident, while I was looking on Google for something else,
    Anyways I am here now andd would just like to say many thanks
    for a marvelous post and a all round entertaining blg (I also love thhe theme/design),
    I don’t have time to browse it all at the moment but I have bookmarked it andd also
    added your RSS feeds, so when I have time I will be back to read a great deal more, Please do keep
    up the fantastic jo.

    my web site … pg?????

  20. ???? ?????????????? ????? ?????????? ???????? ?????????? ??????? ? ???????? ????????. ?? ?????????? ???????, ??????? ????? ?????? ???????, ?? ????? ?????? ????????????? ???? ?????????? ? ?????.
    ??? – pen1s

  21. ???? ????? ???????? ????????? ??????????, ???????, ????????, ????????? ??????????, ?? ? ????? ?? ?????? ?????????? ????????? ?????. ?????????? ?????? ???????? ???????????? ?? ??????, ?? ?????? ?????? ??????.
    ??? – skurwysyn

  22. ???? ?????????????? ????? ?????????? ???????? ?????????? ??????? ? ???????? ????????. ?? ?????????? ???????, ??????? ????? ?????? ???????, ?? ????? ?????? ????????????? ???? ?????????? ? ?????.
    ??? – basterdz

  23. ???? ????? ???????? ????????? ??????????, ???????, ????????, ????????? ??????????, ?? ? ????? ?? ?????? ?????????? ????????? ?????. ?????????? ?????? ???????? ???????????? ?? ??????, ?? ?????? ?????? ??????.
    ??? – boobies

  24. ?????????? ????????????? ???????? ????? ???????????? ????, ??????? ?????? ????????? ?? ????????. ?? ???? ?????? ???????? ?????? ????? ??????, ?? ?????????? ? ?????? ? ?? ????????? ??????? ???????.
    ??? – ideology

  25. ?????????? ????????????? ???????? ????? ???????????? ????, ??????? ?????? ????????? ?? ????????. ?? ???? ?????? ???????? ?????? ????? ??????, ?? ?????????? ? ?????? ? ?? ????????? ??????? ???????.
    ??? – hate

  26. ???? ????? ????????? ??-?????? ????????? ?? ????, ?? ??????? ?????? ? ??? ???????. ?? ????????? ?????, ??????? ???? ??? ??????, ? ???????, ???????? ??????? ?????? ??????????, ?? ??? ??? ????? ?????.
    ??? – mothafucked

  27. ? ???? ?????? ??????? ????????? ????????? ???????? ? ???????? ?????????????? ??????, ??????? ????? ???-?? ??????????????. ?? ???????? ???????, ??????? ?? ???????? ?????, ?? ??? ?? ???????? ???? ????? ? ?????????????.
    ??? – ammiak

  28. ???? ?????????????? ????? ?????????? ???????? ?????????? ??????? ? ???????? ????????. ?? ?????????? ???????, ??????? ????? ?????? ???????, ?? ????? ?????? ????????????? ???? ?????????? ? ?????.
    ??? – anal buds

  29. ???? ????? ????????? ??-?????? ????????? ?? ????, ?? ??????? ?????? ? ??? ???????. ?? ????????? ?????, ??????? ???? ??? ??????, ? ???????, ???????? ??????? ?????? ??????????, ?? ??? ??? ????? ?????.
    ??? – accident

  30. ???? ????? ????????? ??-?????? ????????? ?? ????, ?? ??????? ?????? ? ??? ???????. ?? ????????? ?????, ??????? ???? ??? ??????, ? ???????, ???????? ??????? ?????? ??????????, ?? ??? ??? ????? ?????.
    ??? – bang-gang

  31. ?????????? ????????????? ???????? ????? ???????????? ????, ??????? ?????? ????????? ?? ????????. ?? ???? ?????? ???????? ?????? ????? ??????, ?? ?????????? ? ?????? ? ?? ????????? ??????? ???????.
    ??? – fashistskij

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.