According to the documentation, main() must be declared using one of the following forms: http://www.digitalmars.com/d/2.0/function.html void main() { ... } void main(char[][] args) { ... } int main() { ... } int main(char[][] args) { ... } However with the latest D2 compiler I can write: import std.stdio; void main (string[] args) { writeln("main with string[]"); } Actually I think that it is pretty good to be able to have main() with string[]. Bearophile on the forums even suggest: In practice in D2 you can even use main(immutable string[] args), that I think is the best form
The compiler is OK. It's just a little problem in the D2 docs.
Fixed a while ago.