The Curious Engineer

All blogs / C++

C++ on a Friday

blog.knatten.org

C++Testing / QA

’10’15’20’25
Posts
93 from 18 Mar 2010 to 31 Oct 2025
Posting
now and then
Kind
personal blog
Feed
https://blog.knatten.org/feed/

2025 3

  1. A prvalue is not a temporary
  2. A taxonomy of C++ types
  3. How to become a conference speaker

2024 5

  1. Visiting CppCast
  2. CppQuiz.org is now on C++23
  3. C++ Brain Teasers Book Launch September 10 (live+streaming)
  4. I wrote a C++ book!
  5. Help get CppQuiz to C++23 and win a book!

2023 2

  1. References don’t have top-level cv-qualifiers
  2. Why we probably shouldn’t have constexpr conditional operator

2022 1

  1. Microsoft C++ versions explained

2021 1

  1. The difference between no move constructor and a deleted move constructor

2019 1

  1. No-one knows the type of char + char

2018 11

  1. static_assert in templates
  2. +!!””
  3. Why you can’t list-initialize containers of non-copyable types
  4. CppQuiz Android App now available!
  5. New design, for improved readability!
  6. CppQuiz.org now uses C++17
  7. Help save CppQuiz.org! We’re porting to C++17.
  8. New job: Zivid Labs!
  9. Trying out C++17 on macOS
  10. lvalues, rvalues, glvalues, prvalues, xvalues, help!
  11. Non-virtual destructors

2016 1

  1. How to contribute questions for cppquiz.org

2014 2

  1. All C++ talks from NDC now available
  2. Very Strong C++ Track at the NDC Conference

2013 4

  1. New job!
  2. CppQuiz.org officially launched!
  3. Prefer Using References With Range Based For Loops
  4. Fighting FUD – Introducing C++11 to Legacy Programmers

2012 15

  1. How to avoid includes in headers
  2. Another Reason to Avoid #includes in Headers
  3. Efficient Pure Functional Programming in C++ Using Move Semantics
  4. A Bad(?) Excuse for Private Inheritance
  5. Notes From My GoogleTest Demo
  6. Installing and Using GoogleTest with Visual Studio
  7. New Software Community, and Google Test Demo
  8. Private Inheritance
  9. C++ Puzzle #1: Initialization Order
  10. Why Return Codes Make Me Mad
  11. Avoiding Heap Allocations With Static Thread Locals
  12. A String Literal is not a string
  13. Why we should see an uptake in usage
  14. Zero-overhead test doubles (mocks without virtual)
  15. Basic gloox Tutorial

2011 10

  1. Disempower Every Variable
  2. Undefined Behaviour — Worse Than its Reputation?
  3. The Difference Between Unspecified and Undefined Behaviour
  4. Don’t be Afraid of Returning by Value, Know the Return Value Optimization
  5. Use boost list_of if You Can’t Have Uniform Initialization Yet
  6. Modify Visibility in a Subclass to Allow Testing
  7. Make a Derived Class to Allow Testing an Abstract Class
  8. The Minesweeper Kata in 15 lines of C++
  9. Uniform Initialization Simplifies Testing
  10. What I’ve Been Working On

2010 37

  1. I am Taking a Hiatus
  2. What I Have Against Precompiled Headers
  3. On the Importance of Fitting in
  4. Minimize the Scope of Each Variable
  5. An Interface is More than Names and Arguments
  6. Allow the Compiler To Do Copies for You
  7. Compiling Boost with STLPort on Windows
  8. Show Me Your Signature, and I’ll Tell You Who You Are
  9. A Summary of “const”, Part One
  10. Changing the Unchangeable
  11. Please Make Member Functions Const Whenever Possible
  12. Static and Dynamic Polymorphism – Siblings That Don’t Play Well Together
  13. New Job, and Windows Survival 101
  14. Book Review: Effective C++ by Scott Meyers
  15. Don’t Put All Includes in the .hxx
  16. Use Your Head Before Using Using in Headers
  17. The Order of #include Directives Matter
  18. The Simplest Possible Introduction to Traits
  19. Why You Shouldn’t Throw in Destructors
  20. Why Algorithms Need two Iterators
  21. What’s the Point of Function Try Blocks
  22. Why Member Functions are not Virtual by Default
  23. New sourcecode formatting
  24. Puzzle #0: Call Sequence
  25. Why Initializer Lists don’t Work with Base Members
  26. Array Initialization Initializes all Elements
  27. Be Careful with Static Variables
  28. Make APIs hard to use incorrectly
  29. How ++c can be Faster than c++
  30. A Quick and Simple Worklog
  31. Friends vs. Dependency Injections
  32. Always catch exceptions by reference
  33. C++0x highlights #0: Range Based For Loop
  34. XP Meetup: 97 Things Every Programmer Should Know
  35. Quick Tip: Ensuring proper indentation in vim
  36. The returning function that never returned
  37. New Blog!