Есть ли какой-нибудь ниндзя-трюк, чтобы сделать переменную постоянной после ее объявления?

Я знаю, что ответ на 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; , но на самом деле это не то же самое, и это создает большую путаницу. Допустимо решение только для C ++ 0x.

EDIT : еще один менее абстрагированный пример, который заставил меня задать этот вопрос:

void OpenFile(string path)
{
    boost::to_lower(path);
    // I want path to be constant now
    ifstream ...
}

РЕДАКТИРОВАТЬ : еще один конкретный пример: Повторное получение констант для переменных в параллельной секции .

47
задан Community 23 May 2017 в 11:54
поделиться