Jonathan M Davis: > If a static assert is in a unit test block it's to verify that something > works. You don't necessarily want it in normal code. For instance, what if > the > static assert is verifying something about a templated type or function? > Having that static assert in the normal code would mean that that particular > instantiation of the function would always be in the code, whereas putting > the > static assert in the unit test would only result in that instantiation during > unit tests (unless you actually instantiated it in your code).
Right. Some static asserts may cause/need the instantiation of a template, that burns both compile time and sometimes some space in the not so well stripped binary. So putting those static asserts just inside the unittests is good. Bye, bearophile