I think you missed the whole point of my comment 😂. Regardless, the time spent compiling a small snippet of code is completely negligible. In the end, both #if 0
and if (false)
have their complimentary uses.
I think you missed the whole point of my comment 😂. Regardless, the time spent compiling a small snippet of code is completely negligible. In the end, both #if 0
and if (false)
have their complimentary uses.
The problem is everyone disagrees on what part of C++ is good… Some like C+classes. Some like intense meta programming and some like functional programming and all are valid C++ that people advocate for.
If (false) is good because it is compiled so it doesn’t get stale.
Even in C this is possible. Just wrap the float or whatever in a struct and all implicit conversions will be gone.
API from a call that accepted integer values between 0 and 32767 (minimum and maximum wheel speeds) to one that accepted float values between 0.0 and 1.0.
This would cause alarm bells to ring in my head for sure. If I did something like that I would make a new type that was definitely not implicitly castable to or from the old type. Definitely not a raw integer or float type.
Atomic instructions are quite slow and if they run a lot… Rust has two types of reference counted pointer for that reason. One that has atomic reference counting for multithreaded code and one non-atomic for single threaded. Reference counting is usually overkill in the first place and can be a sign that your code doesn’t have proper ownership.
Fair enough, I do love being contrarian