www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - any way to initialize an array of structs to void?

reply ref2401 <refactor24 gmail.com> writes:
struct MyStruct {
	 disable this();

	this(int a, string b) {
		this.a = a;
		this.b = b;
	}

	int a;
	string b;
}

I know there is a way to create one instance of `MyStruct` and 
initialize it to void.
   MyStruct s = void;
   s = MyStruct(5, "abcdef");

How can initialize an array of `MyStruct` instances to void?
   auto arr = new MyStruct[10]; // compile-time Error: default 
construction is disabled for type MyStruct.
Sep 16 2015
parent reply Meta <jared771 gmail.com> writes:
On Wednesday, 16 September 2015 at 14:45:06 UTC, ref2401 wrote:
 struct MyStruct {
 	 disable this();

 	this(int a, string b) {
 		this.a = a;
 		this.b = b;
 	}

 	int a;
 	string b;
 }

 I know there is a way to create one instance of `MyStruct` and 
 initialize it to void.
   MyStruct s = void;
   s = MyStruct(5, "abcdef");

 How can initialize an array of `MyStruct` instances to void?
   auto arr = new MyStruct[10]; // compile-time Error: default 
 construction is disabled for type MyStruct.
MyStruct[10] arr = void; Don't do this with a dynamic array, though, as they work a bit differently from static arrays.
Sep 16 2015
parent reply ref2401 <refactor24 gmail.com> writes:
On Wednesday, 16 September 2015 at 14:48:59 UTC, Meta wrote:

 Don't do this with a dynamic array, though, as they work a bit 
 differently from static arrays.
Unfortunately I have to deal with dynamic arrays.
Sep 16 2015
parent reply Meta <jared771 gmail.com> writes:
On Wednesday, 16 September 2015 at 14:51:51 UTC, ref2401 wrote:
 On Wednesday, 16 September 2015 at 14:48:59 UTC, Meta wrote:

 Don't do this with a dynamic array, though, as they work a bit 
 differently from static arrays.
Unfortunately I have to deal with dynamic arrays.
In that case, you can use std.array.uninitializedArray or std.array.minimallyInitializedArray as needed. http://dlang.org/phobos/std_array.html#uninitializedArray http://dlang.org/phobos/std_array.html#.minimallyInitializedArray
Sep 16 2015
parent ref2401 <refactor24 gmail.com> writes:
On Wednesday, 16 September 2015 at 14:57:49 UTC, Meta wrote:
 In that case, you can use std.array.uninitializedArray or 
 std.array.minimallyInitializedArray as needed.

 http://dlang.org/phobos/std_array.html#uninitializedArray
 http://dlang.org/phobos/std_array.html#.minimallyInitializedArray
Thanks)
Sep 16 2015