www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - base class function hiding

reply bc <mi_emayl_adrez hotmail.com> writes:
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?
Oct 11 2007
parent reply Regan Heath <regan netmail.co.nz> writes:
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.
Oct 11 2007
parent reply bc <mi_emayl_adrez hotmail.com> writes:
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.

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.
Oct 11 2007
next sibling parent Bill Baxter <dnewsgroup billbaxter.com> writes:
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.

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
Oct 11 2007
prev sibling next sibling parent Regan Heath <regan netmail.co.nz> writes:
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.


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
Oct 12 2007
prev sibling parent reply Manfred Nowak <svv1999 hotmail.com> writes:
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
Oct 13 2007
parent reply Bill Baxter <dnewsgroup billbaxter.com> writes:
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
Oct 13 2007
parent Manfred Nowak <svv1999 hotmail.com> writes:
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
Oct 14 2007