现代优化 C++ 编译器是否受益于 static_asserts?
例如,如果我断言一个整数只能在一个受限范围内,编译器是通过优化步骤携带该信息还是它仍然只是一个整数?
请不要回答编译器可以考虑它。问题在于当前的编译器是否会这样做。
最佳答案
不,静态断言不会为编译器增加执行优化的额外机会。原因是静态断言只能测试编译器无论如何都知道的条件(它还能如何评估断言?)。此外,静态断言只能在编译时失败,一旦编译就不再需要静态断言了。从这个意义上说,您用于断言的条件肯定会被编译器用于优化,但您在该条件下断言的事实对编译器来说并不是额外的信息。
免责声明:这是我根据有限的知识得出的结论。我很乐意阅读更复杂的答案。
关于c++ - static_assert 是否有助于优化编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48320989/