Признак переменной UnSet

Р
Р

Предлагаю ввести модификатор переменной unset который добавлял бы признак того что переменой было назначено новое действительное значение. Так же этим состоянием можно было управлять - снимать признак назанчения.

Например:

bool unset remoteProcessDone = false;

....

if (ConnectToRemoteProcess()) {

remoteProcessDone = GetRemoteStateDoneProcess();

}

 

if(remoteProcessDone) {

//true

} else {

//false

} unset {

// unset/undefined

}

 

//так же можно задавать блок в коде где проверяется что переменные были явно назначены

ch_unset {

remoteProcessDone,

......

//тут идет проверка всех переменных на признак того что им были назначены значения.

//если хоть одна из переменных была unset можно генерировать исключения или обработчик.

}

 

remoteProcessDone = true/false; // set

unset(remoteProcessDone); //снимаем признак назначения переменной.

//remoteProcessDone -  unset

 

технически сами признаки можно хранить в виде битов, битовыми наборами в памяти.

-5
рейтинг
2 комментария
yndx-antoshkka
Это решается на уровне стандартной библиотеки через std::optional
yndx-antoshkka
Р
yndx-antoshkka, черз std::optional тяжелее описывать, но на любителя.
Р
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).