Hi,
This time I am trying to port to Python the asset swap C++ test. I am stuck with the Bond input. Using the following interface (just copy paste the C++ header with the Ptr rearrange) %rename(AssetSwap) AssetSwapPtr; class AssetSwapPtr : public SwapPtr { public: %extend { AssetSwapPtr(bool payFixedRate, const boost::shared_ptr<Bond>& bond, Real bondCleanPrice, const boost::shared_ptr<IborIndex>& index, Spread spread, const Schedule& floatSchedule = Schedule(), const DayCounter& floatingDayCount = DayCounter(), bool parAssetSwap = true){ return new AssetSwapPtr( new AssetSwap(payFixedRate,bond,bondCleanPrice, index,spread, floatSchedule, floatingDayCount,parAssetSwap)); } } }; I get the following error: QuantLib/quantlib_wrap.cpp(10115) : error C2065: 'Bond' : identificador no declarado QuantLib/quantlib_wrap.cpp(10118) : error C2664: 'QuantLib::AssetSwap::AssetSwap (bool,const boost::shared_ptr<T> &,QuantLib::Real,const boost::shared_ptr<QuantL ib::IborIndex> &,QuantLib::Spread,const QuantLib::Schedule &,const QuantLib::DayCounter &,bool)' : no se puede convertir el parámetro 2 de 'const boost::shared_ptr' a 'const boost::shared_ptr<T> &' with [ T=QuantLib::Bond ] Razón: no se puede realizar la conversión de 'const boost::shared_ptr' a 'const boost::shared_ptr<T>' with [ T=QuantLib::Bond ] No hay disponible ningún operador de conversión definido por el usuario que pueda realizar esta conversión, o bien no se puede llamar al operador QuantLib/quantlib_wrap.cpp(140011) : error C2664: 'new_AssetSwapPtr__SWIG_0' : no se puede convertir el parámetro 2 de 'const boost::shared_ptr<T>' a 'const boo st::shared_ptr &' with [ T=QuantLib::Bond ] Razón: no se puede realizar la conversión de 'const boost::shared_ptr<T>' a 'const boost::shared_ptr' with [ T=QuantLib::Bond ] No hay disponible ningún operador de conversión definido por el usuario que pueda realizar esta conversión, o bien no se puede llamar al operador QuantLib/quantlib_wrap.cpp(140109) : error C2664: 'new_AssetSwapPtr__SWIG_0' : no se puede convertir el parámetro 2 de 'const boost::shared_ptr<T>' a 'const boo st::shared_ptr &' with [ T=QuantLib::Bond ] Razón: no se puede realizar la conversión de 'const boost::shared_ptr<T>' a 'const boost::shared_ptr' with [ T=QuantLib::Bond ] No hay disponible ningún operador de conversión definido por el usuario que pueda realizar esta conversión, o bien no se puede llamar al operador QuantLib/quantlib_wrap.cpp(140195) : error C2664: 'new_AssetSwapPtr__SWIG_0' : no se puede convertir el parámetro 2 de 'const boost::shared_ptr<T>' a 'const boo st::shared_ptr &' with [ T=QuantLib::Bond ] Razón: no se puede realizar la conversión de 'const boost::shared_ptr<T> ' a 'const boost::shared_ptr' with [ T=QuantLib::Bond ] No hay disponible ningún operador de conversión definido por el usuario que pueda realizar esta conversión, o bien no se puede llamar al operador QuantLib/quantlib_wrap.cpp(140269) : error C2664: 'new_AssetSwapPtr__SWIG_0' : no se puede convertir el parámetro 2 de 'const boost::shared_ptr<T>' a 'const boo st::shared_ptr &' with [ T=QuantLib::Bond ] Razón: no se puede realizar la conversión de 'const boost::shared_ptr<T>' a 'const boost::shared_ptr' with [ T=QuantLib::Bond ] No hay disponible ningún operador de conversión definido por el usuario que pueda realizar esta conversión, o bien no se puede llamar al operador error: command '"c:\Archivos de programa\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2 If, like other interfaces, I try to cast to Bond with the following interface: %rename(AssetSwap) AssetSwapPtr; class AssetSwapPtr : public SwapPtr { public: %extend { AssetSwapPtr(bool payFixedRate, const BondPtr& bond, Real bondCleanPrice, const boost::shared_ptr<IborIndex>& index, Spread spread, const Schedule& floatSchedule = Schedule(), const DayCounter& floatingDayCount = DayCounter(), bool parAssetSwap = true){ boost::shared_ptr<Bond> bo = boost::dynamic_pointer_cast<Bond>(bond); return new AssetSwapPtr( new AssetSwap(payFixedRate,bo,bondCleanPrice, index,spread, floatSchedule, floatingDayCount,parAssetSwap)); } } }; I get the following error: QuantLib/quantlib_wrap.cpp(10114) : error C2061: error de sintaxis : identificador 'BondPtr' QuantLib/quantlib_wrap.cpp(10114) : error C2059: error de sintaxis : ')' QuantLib/quantlib_wrap.cpp(10114) : error C2143: error de sintaxis : falta ')' delante de '{' QuantLib/quantlib_wrap.cpp(10115) : error C2065: 'Bond' : identificador no declarado QuantLib/quantlib_wrap.cpp(10116) : error C2065: 'Bond' : identificador no declarado QuantLib/quantlib_wrap.cpp(10116) : error C2065: 'bond' : identificador no declarado QuantLib/quantlib_wrap.cpp(10116) : error C2512: 'boost::shared_ptr' : no hay disponible un constructor predeterminado adecuado QuantLib/quantlib_wrap.cpp(10118) : error C2065: 'bondCleanPrice' : identificador no declarado QuantLib/quantlib_wrap.cpp(10119) : error C2065: 'index' : identificador no declarado QuantLib/quantlib_wrap.cpp(10119) : error C2065: 'spread' : identificador no declarado QuantLib/quantlib_wrap.cpp(10119) : error C2065: 'floatSchedule' : identificador no declarado QuantLib/quantlib_wrap.cpp(10119) : error C2065: 'floatingDayCount' : identificador no declarado QuantLib/quantlib_wrap.cpp(10119) : error C2065: 'parAssetSwap' : identificador no declarado QuantLib/quantlib_wrap.cpp(140012) : error C2660: 'new_AssetSwapPtr__SWIG_0' : la función no acepta 8 argumentos QuantLib/quantlib_wrap.cpp(140110) : error C2660: 'new_AssetSwapPtr__SWIG_0' : la función no acepta 7 argumentos QuantLib/quantlib_wrap.cpp(140196) : error C2660: 'new_AssetSwapPtr__SWIG_0' : la función no acepta 6 argumentos QuantLib/quantlib_wrap.cpp(140270) : error C2660: 'new_AssetSwapPtr__SWIG_0' : la función no acepta 5 argumentos error: command '"c:\Archivos de programa\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' failed with exit status 2 Sincerely I cannot understand why I get a syntax error in BondPtr. (I included the bonds.i interface in the swap.i.) Any help is appreciated. Lluís ------------------------------------------------------------------------------ Got Input? Slashdot Needs You. Take our quick survey online. Come on, we don't ask for help often. Plus, you'll get a chance to win $100 to spend on ThinkGeek. http://p.sf.net/sfu/slashdot-survey _______________________________________________ QuantLib-users mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/quantlib-users |
Free forum by Nabble | Edit this page |