Добрый день. Столкнулся с такой проблемой. Есть код
| Код | //---------------------------------------------------------------------------
#include <vcl.h> #pragma hdrstop #include <smartptr.h> //--------------------------------------------------------------------------- class Base { public: virtual Base* Clone(){return new Base;} }; class SubBase : public Base { public: virtual Base* Clone(){return new SubBase;} }; //--------------------------------------------------------------------------- typedef Loki::SmartPtr<Base,Loki::DeepCopy> BaseCPtr; //---------------------------------------------------------------------------
#pragma argsused int main(int argc, char* argv[]) { BaseCPtr cptrTemp1; cptrTemp1 = BaseCPtr (new SubBase); return 0; } //---------------------------------------------------------------------------
|
Компилятор BCB 6.0 , ну понятно что инт. указатель со стратегией глубокого копирования, блин а при сборке выдается ошибка:
| Цитата | | [C++ Error] SmartPtr.h(802): E2015 Ambiguity between 'Loki::SmartPtr<Base,Loki::DeepCopy<P>,Loki::DisallowConversion,Loki::AssertCheck<P>,Loki::DefaultSPStorage<T> >::SmartPtr(Base * const &)' and 'Loki::SmartPtr<Base,Loki::DeepCopy<P>,Loki::DisallowConversion,Loki::AssertCheck<P>,Loki::DefaultSPStorage<T> >::SmartPtr(Loki::ByRef<Loki::SmartPtr<Base,Loki::DeepCopy<P>,Loki::DisallowConversion,Loki::AssertCheck<P>,Loki::DefaultSPStorage<T> > >)' |
, блин что за ерудна!!! Может библиотека глючит?
Народ, вы сталкивались с такой проблемой? Помогите!!! Заранее благодарен за ответы.
Блин, самое прикольное то что в студии все в норме.... |