You can make register_device() an inline function that just calls a do_register_device() private function without the badge. That way you don't have to pay for the empty class.
I'm not sure I follow... The motivation for Badge is to have methods on VFS that only Device can call, without exposing VFS's internals to Device. Without Badge, what prevents non-Device functions from calling register_device()?
I guess the inline function would require a Badge and the private member function would not. So an inline constructed but never used Badge is even more likely to be completely optimized away
Yup. This is why people are taught not to click links in emails for things like banking. It's a dangerous world out there, even for seemingly innocuous things.
The sRGB black point just means that (0,0,0) is assumed to have a luminance of 0.2 cd/m^2, because your screen reflects ambient light and other factors.
Ignoring it will give you nonsensical values when you try to do conversions into other color spaces or when you try to do color comparisons.
Having a complex model that describes a complex system is not unusable though. There is a reason we want to accurately simulate the Navier-Stokes equations with complex boundary conditions.
To quote the original article: "As a model of a complex system becomes more complete, it becomes less understandable. Alternatively, as a model grows more realistic, it also becomes just as difficult to understand as the real-world processes it represents"
If your model is simple enough to represent the original system accurately, then the original system is not complex.
If your model is simple enough to represent the original system accurately, then the original system is not complex.
My model can be complex enough to represent the original system and still be useful. I can iterate on design and make measurements without building the real thing.
> If your model is simple enough to represent the original system accurately, then the original system is not complex.
No, this is just plain wrong, sorry.
I can describe a population fairly well using one or two ODEs. That doesn't mean that a population of individuals is simple. It's incredibly complex. However, at the meso-scale of just looking at population size and growth rate, my model is accurate (enough).
A model doesn't describe a system at all levels. It simulates the behaviours, whether explicit in the system or emergent from other properties, in order to describe its behaviour at a certain level.
> My model can be complex enough to represent the original system
This does not mean that your model is not complex. It means that the system is simple.
At least, it is simple enough to be represented fully in a model. I think this paradox refers mostly to systems that are too complex to be represented in any model at full accuracy, and must therefore be simplified.
> I think the George Box aphorism linked at the bottom ("All models are wrong [but some are useful]") is closer to the right way to think about this.
Also, see the original article:
> Bonini's Paradox, named after Stanford business professor Charles Bonini, explains the difficulty in constructing models or simulations that fully capture the workings of complex systems (such as the human brain).
A model is "too complex" by this definition if there can be no complete and accurate virtual representation of it, it can't be wrong by definition. If you emulate a CHIP-8, for instance, you are able to accurately represent the full state of the system inside the emulator; therefore, the emulator is capable of full accuracy. It's impossible to do the same with a human brain, as quoted in the article.
https://godbolt.org/z/25k1DG
It just makes use of the non-transitiveness of friend.