Defining a custom *constructor* (not initializer!)
Era Scarecrow
rtcvb32 at yahoo.com
Mon May 7 03:15:55 PDT 2012
On Monday, 7 May 2012 at 09:18:11 UTC, David Nadlinger wrote:
> On Monday, 7 May 2012 at 07:28:18 UTC, Mehrdad wrote:
>> Is this something that actually modifies the 'new' operator,
>> or is it just a separate factory function that my code would
>> need to switch to using?
>
> Doing it without a separate factory function (and maybe
> disabling new along with it by protecting the constructor) is
> not possible in D. However, I don't quite see what it would
> gain you in the first place – besides potentially screwing up
> the semantics users expect from new…
What is your objective? What are you trying to achieve? I keep
getting the impression of you using a object factory and a static
function to create your objects, which would give you more
optional behavior but not using new directly.
class X {
static X makeX() {
X x;
//make X or OOP descendant and return by whatever rules you
need
return x;
}
}
Too much control is worse than not enough control. When I was
testing out C++11 and getting my hands dirty, bugs were easily
introduced where if you had to control certain gritty details,
all details had to be controlled for it to work. If you don't
have to control it, go around it to a simpler although slightly
longer solution.
More information about the Digitalmars-d
mailing list