Да, const
означает, что вы не можете изменить путь извне.
Для библиотек, основанных на CoreFoundation, const
- это скорее хак, позволяющий изменяемым объектам использовать неизменяемые методы без приведения, а не и наоборот. Это значит
CGMutablePathRef mpath;
...
CGPathContainsPoint(mpath, ...);
компилируется нормально, потому что Foo*
может быть неявно преобразован в const Foo*
, но
CGPathRef path;
...
CGPathAddRect(path, ...);
выдаст ошибку, потому что const Foo*
не может быть безопасно преобразован в Foo*
.