Scope variables.

Agustin agustin.l.alvarez at hotmail.com
Mon Oct 7 15:52:19 PDT 2013


On Monday, 7 October 2013 at 19:59:09 UTC, Agustin wrote:
> On Monday, 7 October 2013 at 19:58:21 UTC, Agustin wrote:
>> I'm having a hard time trying to use "scoped".
>>
>> public T callEvent(T, A...)(auto ref A args) const
>> {
>>  T pEvent = scoped!T(forward!args);
>>  postEvent(pEvent, typeid(T).toHash);
>>  return pEvent;
>> }
>>
>> private void postEvent(ref Event event, Event.ID type) const
>> {
>>  ....
>> }
>>
>> src\event\EventManager.d(37): Error: function 
>> ghrum.event.EventManager.EventManager.postEvent (ref Event 
>> event, uint type) const is not callable using argument types 
>> (MyEvent,uint)
>> src\event\EventManager.d(37): Error: function 
>> ghrum.event.EventManager.EventManager.postEvent (ref Event 
>> event, uint type) const is not callable using argument types 
>> (MyEvent,uint) const
>> src\event\EventManager.d(37): Error: cast(Event)pEvent is not 
>> an lvalue
>
>
> callEvent!MyEvent(); Being MyEvent a subclass of Event.

So i found out that i cannot do this, may i ask why?

public class A
{
   int x = 0;
}

public class B : A
{
}

void func(ref A a)
{
}

void main()
{
   B b = new B();
   func(b);
}


More information about the Digitalmars-d-learn mailing list