Hi, for a long time now in C++ we have the const keyword, which
disallows writing over a variable.
What if we also want to disallow *reading* a variable?
One way is to hide it inside a dummy compound statement, like when
you're inside a switch statement:
... break;
case 42:
{
int helper = x + 42;
...
but consider a for loop:
for (int i = 0; (i < 42): ++i)
{
}
no easy way to disallow reading that i variable inside the for loop.
Same problem also for argument(s) to a function, when inside the
function body.
Introducing the c++ forget keyword
This lets you specify variables, types or functions that you want to
forget/hide in the current scope. E.g. the for loop:
for (int i = 0; (i < 42): ++i)
{
int b = i * i; // ok
...
forget i;
int c = i / 7; // compiler error: i is forgotten and cannot be used
}
Forgetting a variable does not affect destructors, they run as normal.
I.e. the forget keyword is only a compile time thing.
You can also forget your least favorite parts of the C++ library, e.g.
forget strcpy(char*, const char*);
so that you'll get a compiler error whenever you try to use strcpy() in
a TU.
Best regards Henry
--
Std-Proposals mailing list
Std-Proposals@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals