Я знаю, что ответ на 99,99% нет, но я решил, что стоит попробовать, вы никогда не знаете.
void SomeFunction(int a)
{
// Here some processing happens on a, for example:
a *= 50;
a %= 10;
if(example())
a = 0;
// From this point on I want to make "a" const; I don't want to allow
// any code past this comment to modify it in any way.
}
Я могу сделать что-то похожее на const int b = a;
, но это не совсем то же самое, и это создает много путаницы. Решение С++ 0x приемлемо.
EDIT: еще один менее абстрактный пример, который заставил меня задать этот вопрос:
void OpenFile(string path)
{
boost::to_lower(path);
// I want path to be constant now
ifstream ...
}
EDIT: еще один конкретный пример: Восстановить константу переменных в параллельном разделе.