View mode: basic / threaded / horizontal-split · Log in · Help
October 11, 2007
base class function hiding
It's so annoying. I'm always running into difficulties with this. The  
times a function has been hidden when I didn't want it hidden outnumber  
the reverse case 20 to 1 or more. Especially with templates and mixins.  
I'm sure someone will say it it's better this way but I don't buy it. I  
really would prefer functions to never be hidden unless specifically  
requested. What can be done about this?
October 11, 2007
Re: base class function hiding
bc wrote:
> It's so annoying. I'm always running into difficulties with this. The 
> times a function has been hidden when I didn't want it hidden outnumber 
> the reverse case 20 to 1 or more. Especially with templates and mixins. 
> I'm sure someone will say it it's better this way but I don't buy it. I 
> really would prefer functions to never be hidden unless specifically 
> requested. What can be done about this?

The problem is larger than personal preference, have a search through 
these groups and the archives on digitalmars.com/d.
October 12, 2007
Re: base class function hiding
On Thu, 11 Oct 2007 18:51:25 +0100, Regan Heath <regan@netmail.co.nz>  
wrote:

> bc wrote:
>> It's so annoying. I'm always running into difficulties with this. The  
>> times a function has been hidden when I didn't want it hidden outnumber  
>> the reverse case 20 to 1 or more. Especially with templates and mixins.  
>> I'm sure someone will say it it's better this way but I don't buy it. I  
>> really would prefer functions to never be hidden unless specifically  
>> requested. What can be done about this?
>
> The problem is larger than personal preference, have a search through  
> these groups and the archives on digitalmars.com/d.
>
>
Thanks for the pointer. Sorry if I was rude BTW. I'd been messing around
trying to make a rectangular array class in C++, that must have an
opIndex with variable number of arguments up to the number of dimensions,
got p***ed off with that, thought 'i bet this is easier in D' and found
that it wasn't.
October 12, 2007
Re: base class function hiding
bc wrote:
> On Thu, 11 Oct 2007 18:51:25 +0100, Regan Heath <regan@netmail.co.nz> 
> wrote:
> 
>> bc wrote:
>>> It's so annoying. I'm always running into difficulties with this. The 
>>> times a function has been hidden when I didn't want it hidden 
>>> outnumber the reverse case 20 to 1 or more. Especially with templates 
>>> and mixins. I'm sure someone will say it it's better this way but I 
>>> don't buy it. I really would prefer functions to never be hidden 
>>> unless specifically requested. What can be done about this?
>>
>> The problem is larger than personal preference, have a search through 
>> these groups and the archives on digitalmars.com/d.
>>
>>
> Thanks for the pointer. Sorry if I was rude BTW. I'd been messing around
> trying to make a rectangular array class in C++, that must have an
> opIndex with variable number of arguments up to the number of dimensions,
> got p***ed off with that, thought 'i bet this is easier in D' and found
> that it wasn't.

With a string mixin and CTFE you should be able to generate the required 
functions on the fly.

Take a look at the code here (first one on the page should do it):
http://www.dsource.org/forums/viewtopic.php?t=3170&postdays=0&postorder=asc&start=0

It'll take some wading through, but if you're patient you should be able 
to figure out how to turn that into code that generates N different 
opIndex functions.


--bb
October 12, 2007
Re: base class function hiding
bc wrote:
> On Thu, 11 Oct 2007 18:51:25 +0100, Regan Heath <regan@netmail.co.nz> 
> wrote:
> 
>> bc wrote:
>>> It's so annoying. I'm always running into difficulties with this. The 
>>> times a function has been hidden when I didn't want it hidden 
>>> outnumber the reverse case 20 to 1 or more. Especially with templates 
>>> and mixins. I'm sure someone will say it it's better this way but I 
>>> don't buy it. I really would prefer functions to never be hidden 
>>> unless specifically requested. What can be done about this?
>>
>> The problem is larger than personal preference, have a search through 
>> these groups and the archives on digitalmars.com/d.
>>
>>
> Thanks for the pointer. Sorry if I was rude BTW. 

It wasn't that, it's just that this topic comes up every now and again 
and it also happens to be a hard one to explain so it's better to re-use 
the old conversations if possible.

> I'd been messing around
> trying to make a rectangular array class in C++, that must have an
> opIndex with variable number of arguments up to the number of dimensions,
> got p***ed off with that, thought 'i bet this is easier in D' and found
> that it wasn't.

Looks like Bill is sorting you out :)

Regan
October 13, 2007
Re: base class function hiding
bc wrote

> must have an opIndex with variable number of arguments up to the
> number of dimensions

What's wrong with
 void opIndex(size_t[] arg ...)

-manfred
October 13, 2007
Re: base class function hiding
Manfred Nowak wrote:
> bc wrote
> 
>> must have an opIndex with variable number of arguments up to the
>> number of dimensions
> 
> What's wrong with
>   void opIndex(size_t[] arg ...)
> 
> -manfred  
> 

*) No compile-time check on exceeding the valid number of arguments.
*) the return type shouldn't be "void" but an N-nargs (N minus 
args.length) dimensional array.  Since N is a template parameter, each 
function must return a different type.

--bb
October 14, 2007
Re: base class function hiding
Bill Baxter wrote

> *) No compile-time check on exceeding the valid number of
> arguments. *) the return type shouldn't be "void" but an N-nargs
> (N minus args.length) dimensional array.  Since N is a template
> parameter, each function must return a different type.

thx
-manfred
Top | Discussion index | About this forum | D home