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);
}