[Web Feed] In a recent article on clang-tidy I referenced the fact that we're doing a hu...
Feed Supplier <[email protected]> Wed, 12 May 21 16:52:28 UTC
| Newsgroups | alt.comp.programming |
|---|---|
| Organization | Usenet.Farm |
| Message-ID | <[email protected]> |
..ge refactoring regarding char pointers, lifetime, ownership and In a raymii.org/s/snippets/Run_one_specific_clang-tidy_check_on_your_codebase.html: recent article on clang-tidy I referenced the fact that we're doing a huge refactoring regarding char pointers, lifetime, ownership and std::strings Todays post is another one related to that change, where even though everything compiled correctly, it didn't work For a compiled language, that is not something you expect. Next to unit tests, a compiler error is your number one sign that you've made a mistake somewhere. In this case however, the code all compiled fine. The issue here was an older part of the code not using override combined with automated refactoring in CLion missing some parts of the code during a change. So, the issue in this case is entirely our own fault, it was spotted in the manual testing, but I'd rather had it not happen at all. In this post I'll describe the problem including some example code that illustrates what happened. My key point is that even though the code compiles, you should always test it, preferably automated with unit and integrations tests, otherwise manually with a runbook. Link 1 It compiles does not always mean that it works, a tale of virtual overridden fun in C++ - Raymii.org: https://raymii.org/s/articles/It_compiles_does_not_always_means_that_it_works.html