Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

function call in for loop condition

Name: Anonymous 2009-02-28 2:29

I got into an argument with a co-worker today about this snippet:


for (int i = 0; i < foo(); i++)
{
}


I told him that he shouldn't put the foo() function in the termination check of that for loop. He said that the compiler actually assigns the result of foo() to a variable and then sticks that in where foo() is at. I said that we can't rely on that. We're working in C++ on .NET. Who's right?

Name: Anonymous 2009-02-28 3:13

>>5
You are both wrong. It will not save foo() unless it is simple enough for the compiler to tell that it is pure.
lrn2read:
you could mark the function as a pure function

>>4
>>3 didn't say anything about doing it at compile time. the compiler can generate code to save the result and reuse it instead of generating code to call the function each time.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List