Учитывая две программы, в которых единственной разницей в исходном коде является наличие или отсутствие одного constexpr, возможно ли, что значение программы изменится?
Другими словами, если бы был параметр компилятора, чтобы попросить компилятор попытаться действительно усложнить вывод constexpr, где это возможно, нарушит ли он существующий стандартный код и/или изменит его значение в плохих отношениях?
Представьте, что вы имеете дело с кодовой базой, в которой первоначальный разработчик забыл включить constexpr в места, где это было возможно, возможно, код написан до С++ 11. Было бы замечательно, если бы компилятор сделал вывод constexpr, чтобы помочь вам справиться с вашей работой. Конечно, возможно, он также должен предупреждать каждый раз, когда он делает это заключение, и поощряя вас явно добавить constexpr позже. Но это было бы полезно. Мое беспокойство в том, что это может нарушить ситуацию?
Пока, единственное, о чем я могу думать, состоит в том, что функции constexpr неявно inline, и могут быть ситуации, когда добавление inline может изменить ситуацию по-разному; например, если вы нарушаете правило с одним определением.