January 20, 2015
The following code throws a core.exception.InvalidMemoryOperationError@(0), anyone have an idea of what is causing it?

---

import std.stdio;

class Test
{
	this()
	{
		struct Start
		{
			string filename;
		}
		Message!(Start)(Start("one.txt"));
	}

	~this()
	{
		struct Stop
		{
			string filename;
		}
		Message!(Stop)(Stop("one.txt"));
	}
}

unittest
{
	auto t = new Test();
}

struct Message(T)
{
	this(T message)
	{
		writeln(typeid(T));
		writeln(message);
	}
January 20, 2015
On Tue, 20 Jan 2015 17:59:38 +0000
JC via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:

> The following code throws a core.exception.InvalidMemoryOperationError@(0), anyone have an idea of what is causing it?
> 
> ---
> 
> import std.stdio;
> 
> class Test
> {
> 	this()
> 	{
> 		struct Start
> 		{
> 			string filename;
> 		}
> 		Message!(Start)(Start("one.txt"));
> 	}
> 
> 	~this()
> 	{
> 		struct Stop
> 		{
> 			string filename;
> 		}
> 		Message!(Stop)(Stop("one.txt"));
> 	}
> }
> 
> unittest
> {
> 	auto t = new Test();
> }
> 
> struct Message(T)
> {
> 	this(T message)
> 	{
> 		writeln(typeid(T));
> 		writeln(message);
> 	}
`writeln` can allocate.