I came upon a similar piece of code during an IRC discussion. While I am certain that some may consider this example trivial, I admit that the correct answer eluded me even after I verified the result with the compiler – it wasn’t until I checked the standard that it became clear.
Consider the following class:
struct foo { foo() { cout << __PRETTY_FUNCTION__ << endl; } foo(int) { cout << __PRETTY_FUNCTION__ << endl; } }; |
And now, consider the following code:
int global; int main() { foo(); foo(42); foo(global); } |
Would you care to guess what will be printed?