Skip to content
ACCU World of Code

ACCU World of Code

Aggregating coding blogs

Author: Andrey Karpov

Posted on March 20, 2019

Macro Evil in C++ Code

Andrey Karpov from Simplify C++!

Today, I am happy to announce a guest post by Andrey Karpov about the evil of macros. Andrey is a Microsoft MVP in the “Developer Technologies” category and one of […]

The post Macro Evil in C++ Code appeared first on Simplify C++!.

subscribe
Tweets #ACCUConf @ACCUConf @ACCUOrg

Recent Posts

  • Focus of activities planned for 2023
  • The commercial incentive to intentionally train AI to deceive us
  • My 2022 search for software engineering data
  • My 2022 search for software engineering data
  • Analysis of Cost Performance Index for 338 projects

Archives

  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • June 2012
  • May 2012
  • April 2012
  • February 2012
  • January 2012
  • December 2011
  • October 2011
  • September 2011
  • July 2011
  • May 2011
  • March 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • April 2010
  • February 2010
  • January 2010
  • December 2009
  • July 2009
  • June 2009
  • December 2006

Categories

  • "Apple TV"
  • "aws lambda"
  • "Jamerson Quave"
  • "vs code"
  • "XCode 6"
  • .net
  • 10646
  • 16-bit windows
  • 1940s
  • 1990
  • 2021
  • 7
  • 7habit
  • 7habits
  • academic
  • academics
  • accu
  • accuracy
  • Act
  • actionscript
  • actual time
  • ad blocking
  • Ada
  • adjective
  • admin
  • adobe
  • agile
  • agile guide
  • Agile Process
  • agilemideset
  • agilemindset
  • AI
  • air
  • Algol 60
  • Algol 68
  • algorithms
  • altruism
  • anaphora
  • anchoring
  • ancient wisdom
  • Android
  • anniversary
  • anthropology
  • app icon
  • App usage
  • apple
  • approximate
  • Approximation
  • ARC
  • architecture
  • architecure
  • arm9
  • arrays
  • Art
  • artefact
  • artifact
  • Asciidoc
  • astronomy
  • Async programming
  • audio
  • Australia
  • author
  • automatic generation
  • avionics
  • award
  • aws
  • BA
  • backlog
  • backup
  • backups
  • bash
  • Basic Functions
  • becoming better
  • Beeminder
  • benchmark
  • bespoke
  • beta release
  • bi-exponential
  • bias
  • big code
  • binary operator
  • biology
  • birmingham-uk
  • birthday
  • bitmap
  • black-scholes
  • bldd
  • Blimey! Forgot to categorize!
  • blog
  • Blogging
  • board games
  • Boehm
  • book review
  • books
  • Boost.Python
  • bounded error
  • bribe
  • Brightsquid
  • BSI
  • budget
  • bugs
  • build
  • bureaucracy
  • business
  • bygone era
  • Byte
  • C compiler
  • C source
  • C++
  • C++17
  • c++20
  • C90
  • C99
  • calculus
  • cameras
  • capture
  • card games
  • career
  • cars
  • Catalan number
  • Catch
  • Catch2
  • Cauchy
  • causal
  • cellularautomata
  • certificate
  • CESAW
  • change
  • changelog
  • chemistry
  • Christianity
  • Christmas
  • circular statistics
  • citations
  • classic programming books
  • Clean Code
  • clock
  • Clojure
  • Cloud
  • Clustering
  • CMake
  • Cobol
  • Coccinelle
  • code
  • Code First
  • code generator
  • code repository
  • code review
  • code size
  • code usage
  • CodeProject
  • coding guideline
  • coding guidelines
  • cognition
  • cognitive arithmetic
  • cognitive capitalism
  • cognitive effort
  • cognitive load
  • cognitive psychology
  • coin games
  • COM-Poisson
  • comments
  • commercial
  • committee
  • commodity
  • communicating
  • community
  • company
  • compatible type
  • competition
  • compile time
  • compiler
  • compiler testing
  • compiler writer
  • complex
  • complexity
  • computer resources
  • computing
  • conditionals
  • conference
  • confidence interval
  • confidential
  • conformance
  • confusing
  • connecting dots
  • construction industry
  • Consumer
  • Continuous
  • contract
  • controlled english
  • coq
  • Cornwall
  • Coronavirus
  • corporate
  • corrupt
  • cost
  • cost estimation
  • cost-effective
  • cost/benefit
  • court case
  • coventry
  • coverage
  • COVID
  • CP/M
  • cpp
  • cpu
  • crowdsource
  • csv
  • cucumber
  • customer
  • customer satisfaction
  • cyclomatic
  • data
  • data analysis
  • data availability
  • data cleaning
  • data extraction
  • data set
  • Data Structures
  • database
  • database administration
  • dataset
  • datastructures
  • DbContext
  • DbContext SQLServerCE C# NUnit SqlCeConnectionFactory
  • deadlock
  • death
  • debugging
  • deception
  • defect report
  • deleted groups
  • delivery
  • Delphi
  • Dennard scaling
  • deploy
  • deployment
  • design
  • Design Patterns
  • Desktop
  • developers
  • Development
  • development process
  • DevOps
  • dice games
  • dictator
  • digital
  • Digital business
  • dimensional analysis
  • diminishing returns
  • Discard
  • discounting
  • discovery
  • distribution
  • diversity
  • DNA
  • DNS
  • Docker
  • documentation
  • Domain-Driven Design
  • DORA
  • downloads
  • drug discovery
  • dslinux
  • DyanmoDB
  • Dynamic Languages
  • east
  • east-end
  • ecology
  • economics
  • ecosystem
  • ecosystems
  • EDG
  • EF
  • efficiency
  • effort
  • Elm
  • Emacs
  • emacs 25
  • emacs 26
  • email
  • embedded systems
  • embedded-linux
  • empirical
  • employment
  • encapsulation
  • encyclopedia
  • enthusiasm
  • entitlement
  • Entity Framework
  • Entity Framework DbContext SQLServerCE C# NUnit CodeProject SqlCeConnectionFactory databaseDirectory
  • epidemiology
  • error
  • error analysis
  • ES6
  • estimate
  • estimating
  • estimation
  • ethnography
  • EU
  • events
  • evidence
  • evidence-based
  • evolution
  • exeter
  • existing practice
  • experience
  • experiment
  • expert
  • expertise
  • export
  • expressions
  • extra-wide
  • extreme value
  • eye tracking
  • fabricate
  • failsafe
  • fake research
  • fashion
  • faster
  • fault
  • fault density
  • fault model
  • faults
  • feedback
  • Fibonacci
  • Fiddling with Hardware
  • files
  • filter
  • fishing
  • Fix (the new one)
  • Fix dev diary
  • flash-photography
  • flex
  • flex sdk
  • floating-point
  • floatingpoint
  • floppy disc
  • FLOPS
  • flyspell
  • folklore
  • for-loop
  • formal methods
  • Forth
  • Fortran
  • fractals
  • fraud
  • free
  • free workshop
  • freebsd
  • french
  • Fun stuff
  • function definition
  • function parameter
  • function size
  • function-points
  • Functional Programming
  • functions
  • funding
  • funeral
  • future
  • fuzzing
  • games
  • gay
  • gay-pride
  • gcc
  • GCHQ
  • GDPR
  • gemba
  • General
  • General Programming
  • generic type
  • geospatial data
  • get/set
  • git
  • git OneDrive iCloud remote clone backup GitHub
  • git ssh config
  • Github
  • gitops
  • GNOME
  • Go
  • Godot
  • good enough
  • Google
  • goto
  • government
  • gradle
  • Graft
  • grammar
  • Grant/Sackman
  • graphics card
  • Gricean
  • Groovy
  • grub
  • Guest Post
  • guild
  • Hackathon
  • Halstead
  • hardware
  • heaping
  • hedonism
  • heritage
  • heuristic
  • hierarchy
  • highway
  • hiring
  • hiring/firing
  • history
  • homebrew
  • Horizon IT
  • hosting
  • how to solve
  • Huawei
  • human
  • human behavior
  • human language
  • human performance
  • humour
  • hypothesistesting
  • I/O
  • icon
  • identifier
  • if statement
  • image processing
  • impact
  • incentives
  • industrial
  • industry
  • industry data
  • infrastructure
  • innovation
  • input value
  • instruction set
  • instructions
  • intangible
  • integer type
  • integration tests
  • Intel
  • intelligence
  • intelliJ
  • intent
  • Intergration Test
  • intern
  • interoperability
  • interpolation
  • intersting
  • Inversion
  • iOS
  • ios 7
  • iOS Swift "Sprite Kit" "Hungry Bunny" Keychain NSCoding
  • iostreams
  • ipv6
  • isle-of-wight
  • ISO
  • ISO Standard
  • isso
  • IST/5
  • it
  • ITIL
  • jacoco
  • java
  • JavaScript
  • jdk
  • Jekyll
  • jenkins
  • Jest
  • JetBrains
  • jetty
  • Jira
  • JIT
  • jobs
  • js
  • JSON
  • just c
  • K&R
  • Kanban
  • key results
  • Keybase
  • keyboard
  • KeyRemap4MacBook
  • keyword
  • knowledgework
  • Kotlin
  • lambda
  • lambda capture
  • lambda-local
  • language
  • Language usage
  • LaTeX
  • law
  • LDA
  • lean
  • learning
  • legal action
  • Lehman
  • leiningen
  • lesson learned
  • Levy
  • lgbt-pride
  • lgbt-rights
  • lgbtq
  • library
  • licensing
  • life of brian
  • lifecycle
  • lifetime
  • limbo
  • limited memory
  • Linear Algebra
  • linearalgebra
  • linguistics
  • linux
  • Linux Subsystem for Windows
  • lisp
  • LOC
  • logging
  • logistic equation
  • London
  • lonely
  • lvalue
  • lvalue reference
  • mac
  • Mac OS X
  • mac pro
  • macbookpro
  • machine learning
  • macos
  • macros
  • mainframe
  • major players
  • management
  • manjaro linux
  • manufacture
  • market forces
  • marketing
  • Markov chain
  • Mars
  • MATE
  • mathematician
  • mathematics
  • Matrix
  • maven
  • McCabe
  • measurement
  • measuring
  • mechanical turk
  • medieval
  • mediocrity
  • meeting
  • Meetup
  • meetups
  • memory
  • memory management
  • metrics
  • MI5
  • microsoft
  • Micrsoft
  • midset
  • mindset
  • minimalism
  • mistake
  • misunderstanding
  • Mocha
  • model building
  • modeling
  • Modern C++ Features
  • modular
  • mongoDB
  • mongodb basics
  • mongodb java driver
  • monitoring
  • monolithic
  • Moore's law
  • more than half
  • most
  • motivation
  • motofest-2018
  • Motzkin path
  • mpc
  • msvc
  • museum
  • music
  • mutation
  • Named-entity
  • naming
  • Nash equilibrium
  • natural language
  • natural selection
  • ndc
  • negative binomial
  • nesting
  • networks
  • new users
  • newbie
  • nintendo-ds
  • NIST
  • node
  • node.js
  • non-software
  • Normalisation of Deviance
  • North Star Horizon
  • nosql
  • Nostradamus
  • novice
  • number line
  • Numerics
  • Objective-C
  • oblivious transfer
  • okrs
  • one person
  • online tutorial
  • onlinetutorial
  • open source
  • OpenBSD
  • Optimisation
  • optimizer
  • options
  • org-mode
  • org2blog
  • organizational learning
  • OS X
  • other
  • outsource
  • outsourcing
  • overheads
  • overview
  • packaging
  • pair programming
  • paperback
  • Parkinson's law
  • Pascal
  • path length
  • Pattern
  • pattern matching
  • pbis
  • PCTE
  • pdf
  • PeerTube
  • people
  • Pepper
  • perception
  • Performance
  • Perl
  • persist
  • personal
  • personal task
  • philosopher
  • phone
  • photography
  • PHP
  • Pinephone
  • PL/1
  • Planck
  • planning
  • planning poker
  • platform
  • plotting
  • PNG
  • podcast
  • pointer
  • poisson
  • Police
  • poll
  • Pomodoro
  • Post Office
  • power-law
  • powershell
  • PR1ME
  • practicaltips
  • practices
  • precedent
  • predict
  • prediction
  • predictions
  • premium
  • pride
  • Prisoners dilemma
  • probability
  • probability distribution
  • problem solving
  • process
  • processes and people
  • processor
  • Product Manager
  • Product Owner
  • Productivity
  • professional
  • profit
  • Programming
  • programming language
  • Programming Languages
  • programming-tips
  • Project Myopia audio edition
  • project phase
  • projects
  • Prolog
  • Promises
  • proof
  • provenance
  • psychology
  • publishing
  • Python
  • quality
  • queries
  • questions
  • queueing
  • R
  • Rabbit Escape
  • random
  • rants
  • Rants and Raves
  • Raspberry Pi
  • React
  • readability
  • reading
  • reasoning
  • rebuttal
  • recreational mathematics
  • recreationalmathematics
  • refactor
  • Refactoring
  • reference
  • refit
  • register
  • regression
  • regression model
  • regular expression
  • reliability
  • reliable
  • remapping
  • Rendering
  • repairability
  • replicate
  • request
  • Requirements
  • research
  • research aims
  • research progress
  • research software
  • researcher
  • resizable
  • retraction
  • retro computing
  • retrospectives
  • reverse engineer
  • risk profile
  • round number
  • rounding error
  • RStudio
  • rubik's cube
  • Ruby
  • Rust
  • SaaS
  • safety
  • safety critical
  • sales
  • scalar
  • scheduling
  • science
  • scientific management
  • scripting
  • Scrum
  • sdk iOS
  • SE data
  • search
  • searching
  • security
  • SEI
  • selenium
  • semantics
  • semgrep
  • Set Theory
  • setoperations
  • settheory
  • silhouette
  • silver bullet
  • similarity
  • Simula
  • sinclair
  • SiP
  • skill
  • SKNode
  • Smolpxl
  • smoothing
  • snake oil
  • social interaction
  • social learning
  • social pressure
  • social-tech
  • sociology
  • Software Architecture
  • software engineering
  • software system
  • software-development
  • sonar
  • sonarqube
  • sorting
  • source code
  • spaCy
  • spaghetti
  • speaking
  • SPEC
  • Special Functions
  • specialfunctions
  • species
  • specification
  • spell checker
  • sprint
  • sprintgoal
  • SpriteKit
  • spy
  • SQL
  • stable distribution
  • staffing
  • Standard
  • Static
  • static analysis
  • statistical analysis
  • statistics
  • status
  • step change
  • stochastic
  • Stockholm
  • story-points
  • stress
  • structural equivalence
  • student
  • students
  • style
  • subjects
  • sudoers
  • support
  • surefire
  • survey
  • survival
  • svg
  • Swift
  • swift "optional chaining" Dictionary
  • Swift 2 defer #swiftlang Apple iOS
  • swift enum protocol
  • swift let var value reference type container
  • Swift Objective-C iOS
  • Swift Objective-C iOS "iOS 8" CodeProject OSX subclass designated convenience initializer super "super class" base "base class"
  • System administration
  • Tags
  • talk
  • TAOCP
  • target
  • tax collection
  • tdd
  • teaching
  • team
  • team size
  • Tech
  • techdebt
  • Technical
  • techno-babble
  • template
  • templates
  • terminology
  • terseness
  • Test Driven
  • test suite
  • Testing
  • the future
  • theory
  • threat model
  • time
  • time discounting
  • Time Machine
  • time series
  • token games
  • tool
  • Tooling
  • tools
  • trailing return types
  • training
  • transgender
  • tutorials
  • tvOS
  • tvOS iOS swift "Apple TV" OAuth OAuth2 iCloud KV Key-Value Photone OneDrive
  • Twitter
  • Ubuntu
  • UIWindow
  • Unbound
  • Uncle Timo's career corner
  • undefined behavior
  • Unicode
  • uniform distribution
  • Unit of work
  • Unit Test
  • Unit-Testing
  • Unit-Tests
  • university
  • unowned
  • usability
  • USAF
  • user stories
  • userstories
  • UTF-8
  • validation
  • variability
  • variance
  • verbosity
  • version control
  • video
  • Videos
  • vim
  • virtualbox centos networking
  • visual
  • visual c++
  • visual studio
  • volatile
  • vpn
  • vulnerabilities
  • waiting time
  • wall clock time
  • waterfall
  • WBS
  • weak
  • WEIRD
  • WG14
  • WG21
  • Wikihouse
  • Windows
  • Windows 8 iMac 21.5 Boot Camp
  • Windows Subsystem For Linux
  • Windows to OS X
  • winner
  • wireguard
  • women
  • word addressing
  • WordPress
  • words
  • work
  • work-life-balance
  • workflow
  • world domination
  • world-view
  • writing
  • WSL
  • Xanpan
  • xcode
  • Xcode "Xcode 5" "Xcode 6" "Sprite Kit" iOS Swift Game generated landscape portait sks GameScene.sks SKScene size CodeProject "iOS 8"
  • Xfce
  • XP
  • XP game
  • XUbuntu
  • Z80
  • zero cost
  • zero-inflated
  • zero-knowledge
  • Zig
  • ZoKrates
  • ZX81

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Proudly powered by WordPress