Tango BitArray Initialization
Sean Kelly
sean at f4.ca
Sun Feb 11 22:25:32 PST 2007
Colin Huang wrote:
> Sean Kelly Wrote:
>
>> I don't think this is legal in D. In fact, the syntax is a huge problem
>> in C++ because the parser often can't distinguish between a variable
>> decl and a function prototype, and function prototypes take precedence.
>
> Yeah, that got me really confused when I first started learning C++
>
>> It may be uglier, but:
>>
>> BitArray b = BitArray( 1, 0, 1 );
>>
>> is better than:
>>
>> BitArray b( 1, 0, 1 );
>>
>> I only wish that the syntax worked for all stack variables. ie.
>>
>> int x = int( 1 );
>
> Why is this useful? Isn't "int x = 1" enough?
Templates. It still isn't perfect because classes can't be initialized
this way, but:
void buildAndCall(T, Call, Params...)( Call fn, Params p )
{
T val = T( p );
fn( val );
}
Probably a bad example, but you get the idea. It's nice to be able to
initialize everything using the same syntax. I'd almost suggest:
scope T val = new T( p );
as the "universal" scoped declaration syntax, but the presence of the
'new' is not terribly ideal, even though it should work for classes as well.
Sean
More information about the Digitalmars-d-learn
mailing list