GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Learn
  • Documentation
  • Language Reference
  • Library Reference
  • Command-line Reference
  • Feature Overview
  • Articles
  • Downloads
  • Packages
  • Community
  • Blog
  • Orgs using D
  • Twitter
  • Discord (community-run)

This view

  • Original page
  • New address

GeezerVison is showing dlang.org — Features Overview - D Programming Language

D Logo
Menu
  • Learn
  • Documentation
    • Language Reference
    • Library Reference
    • Command-line Reference
    • Feature Overview
    • Articles
  • Downloads
  • Packages
  • Community
    • Blog
    • Orgs using D
    • Twitter
    • Discord (community-run)
    • Forums
    • IRC
    • Wiki
    • Issues
    • Contributing
    • Contributors
    • Foundation
    • Security Team
    • Store
    • Donate
    • Sponsors
  • Resources
    • Tour
    • Books
    • Tutorials
    • Tools
    • Editors
    • IDEs
    • run.dlang.io
    • Visual D
    • Acknowledgments
    • D Style
    • Glossary
    • Sitemap
Search
Report a bug
If you spot a problem with this page, click here to create a GitHub issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

Features Overview

Navigate D's implementation of a few key programming language concepts.

  • Garbage Collection
    • Manual invocation
    • @nogc subset
  • Functions
    • Function Overloading
    • ref and out function parameters
    • ref functions
    • Function Delegates
    • Nested functions
    • Function literals
    • Closures
    • Typesafe variadic arguments
    • Lazy function argument evaluation
    • Uniform Function Call Syntax
  • Arrays
    • Lightweight arrays
    • Resizeable arrays
    • Built-in strings
    • Array slicing
    • Array bounds checking
    • Array literals
    • String switches
    • Associative arrays
  • OOP
    • Object Orientation
    • Interfaces
    • Single inheritance of implementation/multiple inheritance of interfaces
    • Operator overloading
    • Modules
    • No built-in dynamic class loading
    • Nested classes
    • Inner (adaptor) classes
    • Covariant return types
    • Properties
  • Performance
    • Inline assembler
    • Direct access to hardware
    • Lightweight objects
    • Explicit memory allocation control
    • Independent of VM
    • Direct native code gen
  • Generic Programming
    • Implicit Type Inference
    • foreach
    • Ranges
    • Algorithms
    • Aliases
    • Templates
      • Aggregate Templates
      • Function Templates
      • Implicit Function Template Instantiation
      • Partial and Explicit Template Specialization
      • Value Template Parameters
      • Alias Template Parameters
      • Variadic Template Parameters
      • Template Constraints
      is expressions
    • typeof
  • Metaprogramming
    • Compile Time Function Evaluation
    • Template Mixins
    • String Mixins
    • static if
    • static foreach
  • Reliability
    • Contract Programming
    • Unit testing
    • Immutable data
    • Pure functions
    • Static construction order
    • Initialization by default
    • RAII (implicit destructor calls)
    • Exception handling
    • Scope guards
    • try-catch-finally blocks
    • Memory-safe subset
  • Concurrency & Parallelism
    • Concurrency
    • Fibers
    • std.parallelism.parallel
    • Thread Local Storage by default
    • Shared data
    • Thread synchronization primitives
  • Types
    • Structs and Unions
    • Enumerated types
    • 80 bit floating point
    • Complex and Imaginary
    • Pointers
    • Tuples
    • Alias This
  • Compatibility
    • C-like syntax
    • Support for all C types
    • if, while, do, for, switch, goto
    • Direct access to C
    • Import C code
    • Better C subset
    • Use existing debuggers
    • Struct member alignment control
    • Generates standard object files
    • Obviates need for a macro text preprocessor
  • Other
    • Conditional compilation
    • Unicode source text
    • with statement
    • User-Defined Attributes
    • Documentation comments
    • Documented unit tests
Copyright © 1999-2026 by the D Language Foundation | Page generated by Ddoc on Mon Nov 9 05:59:34 2026
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.