/** * This is a Ddoc block comment * Authors: Melvin D. Nerd, melvin@mailinator.com * Bugs: Doesn't work for negative values. * Date: March 14, 2003 */ module hello; import std.stdio; /** * This is a documentation comment block * @param xxx does this (this is the documentation keyword) * @authr some user (this is the documentation keyword error) */ void main(string[] args) { /* * Sample preview code * This is a block comment */ /// Deprecated: superseded by function bar(). void foo() { } int numbers[20]; int average = 0; char ch = '\n'; int a = /+ Nested Comment +/ 1; int b = 2; // Line Comment writefln("Hello World, Reloaded"); // auto type inference and built-in foreach foreach (argc, argv; args) { // Improved typesafe printf writeln("argc: ", argc, " arg: ", argv); } // Nested structs and classes struct specs { // all members automatically initialized int count, allocated; } // Nested functions can refer to outer // variables like args specs argspecs() { specs* s = new specs; // no need for '->' s.count = args.length; // get length of array with .length s.allocated = typeof(args).sizeof; // built-in native type properties foreach (argv; args) s.allocated += argv.length * typeof(argv[0]).sizeof; return *s; } // built-in string and common string operations writefln("argc = %d, " ~ "allocated = %d", argspecs().count, argspecs().allocated); }