compiler doesn't recognize my friend
Hi all,
Code:
#include "CallbackTimer.h" // declares callbackfun
namespace nsScheduler{
class Scheduler : boost::noncopyable
{
friend class Job;
friend class WorkerThread;
friend VOID CALLBACK callbackfun( PVOID param, BOOLEAN timer_or_wait_fired );
//I want to allow that function access to member function onTimerTick()
void onTimerTick();
//.....
public:
//...
};
}//namespace
Code:
//CallbackTimer.h
VOID CALLBACK callbackfun( PVOID param, BOOLEAN timer_or_wait_fired );
namespace nsScheduler{
class Scheduler;
class CallbackTimer :boost::noncopyable
{
//...
}
//CallbackTimer.cpp
#include "CallbackTimer.h"
#include "Scheduler.h"
namespace nsScheduler{
//...
}
VOID CALLBACK
callbackfun( PVOID param, BOOLEAN timer_or_wait_fired )
{
( (nsScheduler::Scheduler*)param)->onTimerTick();
}
but MSVC says:
Quote:
.\CallbackTimer.cpp(48) : error C2248: 'nsScheduler::Scheduler::onTimerTick' : cannot access private member declared in class 'nsScheduler::Scheduler'
Does anybody has an idea why my friend decleration is ignored?
Thank you in advance!