If Statement with Declaration
Nemanja Boric via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jul 19 07:27:36 PDT 2017
On Wednesday, 19 July 2017 at 13:30:56 UTC, sontung wrote:
> So I was thinking of a way of extending if statements that have
> declarations. The following being as example of the current use
> of if statements with declarations:
>
> if(int* weDontPollute = someFunc())
> {
> // use weDontPollute
> }
>
> That's great and all, but it only works by checking if the
> variable evaluates to true or false. Which is fine for a
> pointer but otherwise useless for anything else, like integers
> where zero is usually valid input (index for array). So
> currently the only way to do something like this in the
> language, that i've found, is to use a for statement.
>
> for(int i = someFunc(); i >= 0;)
> {
> // use i
>
> break;
> }
>
> Not that ideal to use a for statement. It makes it hard to read
> and if the break condition isn't there it might very well be an
> infinite loop. So I was thinking of some sort of syntax like
> this:
>
> if(int i = someFunc(); i >= 0)
> {
> // use i
> }
> Thoughts on this sort of feature?
This is included in C++17:
http://en.cppreference.com/w/cpp/language/if
```
int demo() {
if (auto it = m.find(10); it != m.end()) { return it->size(); }
if (char buf[10]; std::fgets(buf, 10, stdin)) { m[0] += buf; }
...
```
More information about the Digitalmars-d
mailing list