编译问题
1>正在编译...1>NSServer.cpp
1>c:\vs.net\ace_wrappers\ace\task_t.h(165) : error C2248: 'ACE_Task_Base::ACE_Task_Base' : cannot access private member declared in class 'ACE_Task_Base'
1> c:\vs.net\ace_wrappers\ace\task.h(278) : see declaration of 'ACE_Task_Base::ACE_Task_Base'
1> c:\vs.net\ace_wrappers\ace\task.h(66) : see declaration of 'ACE_Task_Base'
1> This diagnostic occurred in the compiler generated function 'ACE_Task<_ACE_SYNCH>::ACE_Task(const ACE_Task<_ACE_SYNCH> &)'
1> with
1> [
1> _ACE_SYNCH=ACE_MT_SYNCH
1> ]
已经查明,但不知道怎么改?
是我在程序里面有一个这样的操作!
list<SBServer> m_lsSBServerPool;
SBServer sbserver;
m_lsSBServerPool.push_back(sbserver);
如果注释push_back这一行就没有问题了!
不知道大家有没有什么办法? 貌似只能用指针,看看Task_T.h里的这一段:
private:
// = Disallow these operations.
ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_Task<ACE_SYNCH_USE> &))
ACE_UNIMPLEMENTED_FUNC (ACE_Task (const ACE_Task<ACE_SYNCH_USE> &))
显然拒绝拷贝构造函数啊 可它有一个有参数的构造函数,可以不用传参数的!
ACE_Task :
ACE_Task (ACE_Thread_Manager *thr_mgr = 0,
ACE_Message_Queue<ACE_SYNCH_USE> *mq = 0);
ACE_Task_Base:
ACE_Task_Base (ACE_Thread_Manager * = 0);
都是public的!
页:
[1]