Struct beeing moved around

Jonathan M Davis jmdavisProg at gmx.com
Fri May 20 11:44:19 PDT 2011


> On Fri, 20 May 2011 20:42:26 +0300, Sean Kelly <sean at invisibleduck.org>
> 
> wrote:
> > The compiler can translate this into a single construction (it does in
> > C++), but I don't know that it's required to.
> 
> If not, i don't know any other use for constructors, you can do the almost
> same thing with a function.
> 
> struct A {
> }
> 
> A construct() {
> }
> 
> void main() {
> A a = construct();
> }

That wouldn't work with

A a(args, to, constructor);

Now, I personally never use that syntax and always use

auto a = A(args, to, constructor);

but you can't do the first form without a constructor, and even in the second 
form, you're making it clear that you're spefically constructing a value of 
that type as opposed to using a some random function which happens to produce 
that type. But ultimately, constructors are just special functions anyway.

- Jonathan M Davis


More information about the Digitalmars-d mailing list