The OpenD Programming Language

make

Returns an initialized object. This function is mainly for eliminating construction differences between structs and classes. It allows code to not worry about whether the type it's constructing is a struct or a class.

template make(T)
T
make
(
Args...
)
()
if (
is(T == struct) &&
__traits(compiles, T(arguments))
)
if (
is(T == struct) ||
is(T == class)
)

Examples

import std.algorithm.comparison : equal;
import std.container;

auto arr = make!(Array!int)([4, 2, 3, 1]);
assert(equal(arr[], [4, 2, 3, 1]));

auto rbt = make!(RedBlackTree!(int, "a > b"))([4, 2, 3, 1]);
assert(equal(rbt[], [4, 3, 2, 1]));

alias makeList = make!(SList!int);
auto slist = makeList(1, 2, 3);
assert(equal(slist[], [1, 2, 3]));

Meta