remove injected friends. Thanks to SIGOURE Benoit
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@765 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
ae6396a4cd
commit
4c6d670e3d
2 changed files with 66 additions and 24 deletions
|
@ -108,15 +108,15 @@ namespace Loki
|
|||
PrototypeFactoryUnit(AbstractProduct* p = 0)
|
||||
: pPrototype_(p)
|
||||
{}
|
||||
|
||||
friend void DoGetPrototype(const PrototypeFactoryUnit& me,
|
||||
AbstractProduct*& pPrototype)
|
||||
{ pPrototype = me.pPrototype_; }
|
||||
|
||||
friend void DoSetPrototype(PrototypeFactoryUnit& me,
|
||||
AbstractProduct* pObj)
|
||||
{ me.pPrototype_ = pObj; }
|
||||
|
||||
|
||||
template <class CP, class Base1>
|
||||
friend void DoGetPrototype(const PrototypeFactoryUnit<CP, Base1>& me,
|
||||
typename Base1::ProductList::Head*& pPrototype);
|
||||
|
||||
template <class CP, class Base1>
|
||||
friend void DoSetPrototype(PrototypeFactoryUnit<CP, Base1>& me,
|
||||
typename Base1::ProductList::Head* pObj);
|
||||
|
||||
template <class U>
|
||||
void GetPrototype(U*& p)
|
||||
{ return DoGetPrototype(*this, p); }
|
||||
|
@ -135,6 +135,16 @@ namespace Loki
|
|||
AbstractProduct* pPrototype_;
|
||||
};
|
||||
|
||||
template <class CP, class Base>
|
||||
inline void DoGetPrototype(const PrototypeFactoryUnit<CP, Base>& me,
|
||||
typename Base::ProductList::Head*& pPrototype)
|
||||
{ pPrototype = me.pPrototype_; }
|
||||
|
||||
template <class CP, class Base>
|
||||
inline void DoSetPrototype(PrototypeFactoryUnit<CP, Base>& me,
|
||||
typename Base::ProductList::Head* pObj)
|
||||
{ me.pPrototype_ = pObj; }
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// class template ConcreteFactory
|
||||
// Implements an AbstractFactory interface
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue