Связанный с моим прежним вопросом: компиляторам не разрешено предполагать, что параметры const-ref останутся const?
Мой новый вопрос: есть ли специфические для компилятора, нестандартные расширения или синтаксис, чтобы сообщить GCC/Clang/MSVC, что объект не доступен для записи? Например, здесь некоторый фальшивый код, который я хотел бы написать:
void f(const int& i) {
// At this point, compiler doesn't know if "i" can be mutated or not,
// so it assumes it can
// Fake-ish -- compiler now assumes "i" cannot be mutated and optimizes accordingly
__assume(readonly i);
// ...
}