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