On Thursday, 21 April 2022 at 22:26:57 UTC, Alain De Vos wrote:
I don't know when to use a static assert and when to use a unit
test ?
There is `assert()`, `static assert()` and `unittest`.
`static assert()` is used while compiling, to find errors or
circumstances that can lead to errors in runtime or just show
type incompatibilities.
`assert()` is used at runtime to allow some checks before
processing data. It is evaluated at runtime and removed from
code in release mode. Except `assert(0)` which will always emit
an `AssertError` and will be never removed.
`unittest` is a just block that will be only compiled/executed
when the `-unittest` switch will be applied to compiler command
line. That's it.