Как я пытаюсь применить const-correctness для своего собственного кода, мне часто приходится добавлять квалификацию const к определениям функций в других модулях (написанных другими программистами), чтобы использовать эти функции в моем собственном коде. (см. здесь, как исправление контр-исправления)
Я всегда думал, что если все компилируется нормально, это может привести к нарушению функциональности, поскольку const метки имеют значение только во время компиляции.
Однако на днях один из моих коллег настоял на том, чтобы я повторно запустил все автоматические тесты, прежде чем совершить код с добавленными метками const, где я думал, что достаточно, чтобы этот код скомпилировался.
Есть ли у него точка? Есть ли способ, которым применение const-correctness может нарушить существующую функциональность?
Изменить: Возможно, важно отметить, что, как правило, я должен делать это только для параметров указателей функций (например, Something getSomething(Object* pObj) - Something getSomething(const Object* pObj)). Я не меняю типы возврата или метод const, поскольку это не проблема для клиентского кода.