Re: function shadowed

2015-04-09 Thread ddos via Digitalmars-d-learn

On Thursday, 9 April 2015 at 05:34:09 UTC, anonymous wrote:

On Wednesday, 8 April 2015 at 22:53:39 UTC, ddos wrote:

why not just make it callable without the alias?


It's to prevent hijacking: http://dlang.org/hijack.html


thx for the article!


Re: function shadowed

2015-04-08 Thread anonymous via Digitalmars-d-learn

On Wednesday, 8 April 2015 at 12:05:00 UTC, ddos wrote:

vg.d:
module vg;
extern (C) void  vgSetParameterfv(VGHandle object, VGint 
paramType, VGint count, VGfloat *values);


openvg.d
module openvg;
public import vg;

void vgSetParameterfv(VGHandle object, VGint paramType, 
const(VGfloat[]) values)

{
	vg.vgSetParameterfv(object, paramType, cast(int)values.length, 
cast(VGfloat*)values);

}

test.d
import openvg;
vgSetParameterfv(object, paramType, length, values); // call to 
fun in vg.d


how can i call both functions? i'd like to avoid using the 
module prefix vg.vgSetParameterfv if possible


Add to openvg:
alias vgSetParameterfv = vg.vgSetParameterfv;


Re: function shadowed

2015-04-08 Thread anonymous via Digitalmars-d-learn

On Wednesday, 8 April 2015 at 22:53:39 UTC, ddos wrote:

why not just make it callable without the alias?


It's to prevent hijacking: http://dlang.org/hijack.html


Re: function shadowed

2015-04-08 Thread bearophile via Digitalmars-d-learn

ddos:


same behavior when overriding methods of base classes


This is by design.

Bye,
bearophile


Re: function shadowed

2015-04-08 Thread ddos via Digitalmars-d-learn

On Wednesday, 8 April 2015 at 17:48:36 UTC, anonymous wrote:

On Wednesday, 8 April 2015 at 12:05:00 UTC, ddos wrote:

vg.d:
module vg;
extern (C) void  vgSetParameterfv(VGHandle object, VGint 
paramType, VGint count, VGfloat *values);


openvg.d
module openvg;
public import vg;

void vgSetParameterfv(VGHandle object, VGint paramType, 
const(VGfloat[]) values)

{
	vg.vgSetParameterfv(object, paramType, 
cast(int)values.length, cast(VGfloat*)values);

}

test.d
import openvg;
vgSetParameterfv(object, paramType, length, values); // call 
to fun in vg.d


how can i call both functions? i'd like to avoid using the 
module prefix vg.vgSetParameterfv if possible


Add to openvg:
alias vgSetParameterfv = vg.vgSetParameterfv;


thx that works, but why is it even necessary?

same behavior when overriding methods of base classes

class Matrix(T)
{
  abstract const(T) opIndexAssign(const(T) val, int row, int col);
  Matrix!T opIndexAssign(T val, Tuple!(int,int) idx0, 
Tuple!(int,int) idx1)

  {
...
  }
}

class DenseMatrix(T) : Matrix!(T)
{
override const(T) opIndexAssign(const(T) val, int row, int 
col)

{
...
}

alias opIndexAssign = Matrix!T.opIndexAssign;
}

why not just make it callable without the alias?