മെറ്റാപ്രോഗ്രാമിങ്ങ് ടെംപ്ലേറ്റുകളുടെ കൂട്ടത്തെ പിന്തുണക്കുന്നു, കംപൈൽ ടൈം ഫങ്ഷൻ എക്സിക്യൂഷൻ, ട്യൂപ്പ്സ്, സ്ട്രിംഗ് മിക്സിൻസ് എന്നിവ തയ്യാറാക്കാൻ സഹായിക്കുന്നു. ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങൾ ഡി ന്റെ കംപൈൽ ടൈം ഫീച്ചറുകൾ കാണിക്കുന്നു.
ടെംപ്ലേറ്റുകളിൽ സി++ ഫങ്ഷണൽ ശൈലിയുമായി താരതമ്യം ചെയ്യുമ്പോൾ ഡി ഉള്ളിലെ ടെംപ്ലേറ്റുകൾ കൂടുതൽ ഇംപെറേറ്റീവ് ശൈലിയിൽ എഴുതാം. ഒരു സംഖ്യയുടെ ഫാക്റ്റോറിയൽ കണക്കാക്കുന്ന ഒരു സാധാരണ പ്രവർത്തനമാണ് ഇത്:

ulong factorial(ulong n)

ഇവിടെ, codice_2 ഉപയോഗിക്കുന്നത്, ഡിയുടെ കംപൈൽ സമയത്തെ സോപാധികമായ നിർമ്മിതി, മുകളിൽ പറഞ്ഞ ഫംഗ്ഷനു സമാനമായ കോഡ് ഉപയോഗിക്കുന്ന അതേ കണക്കുകൂട്ടൽ നടത്തുന്ന ഒരു ടെംപ്ലേറ്റ് നിർമ്മിക്കാൻ പ്രദർശിപ്പിച്ചിരിക്കുന്നു:

template Factorial(ulong n)

താഴെപ്പറയുന്ന രണ്ട് ഉദാഹരണങ്ങളിൽ, നിർവചിക്കപ്പെട്ടിട്ടുള്ള ടെംപ്ലേറ്റും ഫംഗ്ഷനും ഫാക്റ്റോറിയലുകൾ കണക്കുകൂട്ടാൻ ഉപയോഗിക്കുന്നു. അസൈൻമെൻറുകളുടെ വലതുവശങ്ങളിൽ നിന്ന് കമ്പൈലർ അവരുടെ തരങ്ങളെ ഇൻഫർ ചെയ്ത പോലെ കോൺസ്റ്റൻറുകളുടെ തനിപ്പകർപ്പുകൾ വ്യക്തമായി നൽകണമെന്നില്ല.

enum fact_7 = Factorial!(7);

ടൈം ഫങ്ഷൻ എക്സിക്യൂഷൻ കംപൈൽ ചെയ്യുന്നതിനുള്ള ഒരു ഉദാഹരണമാണിത്. ഓർഡിനറി ഫംഗ്ഷനുകൾ ചില മാനദണ്ഡങ്ങൾ പാലിക്കുന്ന സ്ഥിരമായ, കമ്പൈൽ-ടൈം എക്സ്പ്രഷനുകളിൽ ഉപയോഗിക്കാം:

enum fact_9 = factorial(9);

codice_3 ഫംഗ്ഷൻ codice_4 പോലുള്ള ഡേറ്റാ ഫോർമാറ്റിങ് (കംപൈൽ ടൈം, CTFE വഴി), "msg" പ്രഗ്മ കംപൈൽ സമയത്തുള്ള ഫലങ്ങൾ പ്രദർശിപ്പിക്കും:

import std.string : format;
pragma(msg, format("7! = %s", fact_7));
pragma(msg, format("9! = %s", fact_9));

കംപൈൽ ടൈം ഫംഗ്ഷൻ എക്സിക്യൂഷൻ സംയോജിപ്പിച്ച സ്ട്രിംഗ് മിക്സിൻസ്, കംപൈൽ സമയത്തെ സ്ട്രിംഗ് പ്രവർത്തനങ്ങൾ ഉപയോഗിച്ച് ഡി കോഡ് സൃഷ്ടിക്കുന്നത് അനുവദിക്കുന്നു. പ്രോഗ്രാമിന്റെ ഭാഗമായി ഡി-കോഡ് ചെയ്യുന്നതിന് ഡൊമെയ്ൻ-നിർദ്ദിഷ്ട ഭാഷകൾ പാഴ്സ് ചെയ്യുന്നതിന് ഇത് ഉപയോഗിക്കാം:

import FooToD; // hypothetical module which contains a function that parses Foo source code
void main()

ഉദാഹരണം 2
ഉദാഹരണങ്ങൾ
മെറ്റാപ്രോഗ്രാമിങ്ങ്
സവിശേഷതകൾ