Print 1 to 1000 in C++ without semi-colons Following this popular question, present your solution which prints the numbers 1 to 1000 (all of them, not the string "1 to 1000" verbatim or something funny) in C++ without using any semi-colons. Unlike the original question, you may use conditionals and loops.

Solutions not requiring any compiler flags are preferred. Please mention any you use if you go against this. Undefined behaviour is allowed, so please specify the compiler and version you're using. Preference will be given to clever solutions. This is not a shortest code contest.

(I have a solution, which I'll post in 24 hours if a similar solution isn't posted before then.)
The semicolon is not needed if you know the magic word. And no need to go obfuscated.

My solution has the additional fanciness that it doesn't use any comma either ;)

#include &lt;iostream&gt;
#define Please(x) if (x) {}

int Number(int x)
{
    if (x &gt; 1)
        Please(Number(x-1))
    Please(std::cout &lt;&lt; " " &lt;&lt; x)
}

int main()
{
    Please(Number(1000))
}