What is the way to write a program meeting following requirements:
- Prints "Hello world!" to stdout;
Has empty main (just returning 0) i.e.
int main(int argc, char** argv) { return 0; }
main
must contain no additional code except for that above.
What is the way to write a program meeting following requirements:
Has empty main (just returning 0) i.e.
int main(int argc, char** argv) {
return 0;
}
main
must contain no additional code except for that above.
You can do this in different ways. Consider you have #include <iostream>
then following methods should be placed before main.
You may use macros, but the result is undefined as noticed in comments. So even if this is an easy way, it should never be used. I will still leave it here for completeness.
#define return std::cout << "Hello world!"; return
You may use static variable:
int helloWorld()
{
std::cout << "Hello World";
return 0;
}
static int print = helloWorld();
... or even simpler:
bool printed = std::cout << "Hello World";
You can do same with object:
struct hello
{
public:
hello()
{
std::cout << "Hello, world!";
}
} world;
Object Instantiation:
struct S
{
S() { std::cout << "Hello World!"; }
} s;
int main() { }
Or in an expression:
int i = ((std::cout << "Hello World\n"), 5);
int main() { }