Aussie AI

Laziness and Assertion Macros

  • Book Excerpt from "Generative AI in C++"
  • by David Spuler, Ph.D.

Laziness and Assertion Macros

No, I'm not talking about you and I know that you're not a lazy C++ programmer. I'm talking about your friends at that old company where you used to work.

The downside of assertions is mainly that they make you lazy as a programmer because they're so easy to add. But sometimes no matter how good they seem, you have to throw an assertion into the fires of Mordor. The pitfalls include:

  • Don't use assertions instead of user input validation.
  • Don't use assertions to check program configurations.
  • Don't use assertions as unit tests (it works, but bypasses the test harness statistics).
  • Don't use assertions to check if a file opened.

You need to step up and actually code the checks of input and configurations as part of proper exception handling. For example, it has to check the values, and then emit a useful error code if they've failed, and ideally it's got a unique error code as part of the message, so that users can give a code to support if they need. You really don't want users to see the dirty laundry of an assertion message with its source file, function name, and line number.

 

Next:

Up: Table of Contents

Buy: Generative AI in C++: Coding Transformers and LLMs

Generative AI in C++ The new AI programming book by Aussie AI co-founders:
  • AI coding in C++
  • Transformer engine speedups
  • LLM models
  • Phone and desktop AI
  • Code examples
  • Research citations

Get your copy from Amazon: Generative AI in C++