Emplace using private constructor
develop32
develop32 at gmail.com
Fri Jun 7 05:23:30 PDT 2013
In a project I'm working on there are classes that are available
publicly but I want to disable their construction outside of
their modules.
class Display
{
const string name;
private this(string name)
{
this.name = name;
}
static Display[] all()
{
// Returns all available displays, the only place where
Display objects
// are to be constructed.
}
}
This is easy when using "new". But I'm using std.conv.emplace
which does not work with private constructors.
"Don't know how to initialize an object of type Display with
arguments (string)"
Is there any solution to this problem? I know I can just make the
constructor public but it just feels wrong, I want to keep public
API as small as possible and it bugs me that language/library
limits me here.
More information about the Digitalmars-d-learn
mailing list