O'Reilly logo

D Cookbook by Adam D. Ruppe

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Creating a NotNull struct

By disabling default construction, we can force initialization of a type. Using this feature, we'll make an object reference that will force the user to check for null before using it.

How to do it…

To create a NotNull struct, perform the following steps:

  1. Create struct NotNull(T) with a private member of type T.
  2. Disable default construction with @disable this();.
  3. Write a private constructor that takes T and assert(t !is null);.
  4. Write a property function that returns the payload and use it with alias this.
  5. Write a helper struct CheckNull(T), with a member T. The member T is a property that returns NotNull!T and has opCast(T : bool), which checks the payload for null and returns true if it is not null.
  6. Write a helper function, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required