Explicit default constructor for structs
Timon Gehr
timon.gehr at gmx.ch
Wed Apr 9 12:02:56 PDT 2014
On 04/09/2014 08:53 PM, Benjamin Thaut wrote:
> Am 09.04.2014 20:33, schrieb Timon Gehr:
>> On 04/09/2014 04:59 PM, Benjamin Thaut wrote:
>
>> Why not just:
>>
>> struct Foo{
>> this(){
>> // do stuff here
>> }
>> }
>>
>> void main(){
>> Foo foo1; // error, no init value
>> auto foo2=Foo(); // ok
>> }
>
> Because then the user might think, that the default constructor gets
> called implicitly by the compiler.
This would be pointed out by the compiler. (i.e. it is an error instead
of an implicit call.)
> Just like in C++. But as that is not
> the case the syntax should be different to indicate that a struct might
> still be instaniated just using T.init.
>
> Kind Regards
> Benjamin Thaut
What would be an use case for a bypassable default constructor?
More information about the Digitalmars-d
mailing list