From: Ferdinando M. A. <fer...@am...> - 2010-06-16 16:07:15
|
Hi Peter > What I do not manage is to export a member function in another object of > type A which returns a shared_ptr to another type B. here it is, namely a SwapRateHelper returning a shared_ptr<VanillaSwap> using its own SwapRateHelper::swap() method: VanillaSwap::VanillaSwap( const shared_ptr<ValueObject>& properties, const shared_ptr<QuantLib::SwapRateHelper>& swapRH, bool permanent) : Swap(properties, permanent) { libraryObject_ = swapRH->swap(); } and the wrapping code is auto-generated by the following xml: <Constructor name='qlVanillaSwapFromSwapRateHelper'> <libraryFunction>VanillaSwap</libraryFunction> <SupportedPlatforms> <SupportedPlatform name='Excel'/> <SupportedPlatform name='Cpp'/> </SupportedPlatforms> <ParameterList> <Parameters> <Parameter name='SwapRateHelper'> <type>QuantLib::SwapRateHelper</type> <tensorRank>scalar</tensorRank> <description>SwapRateHelper object ID.</description> </Parameter> </Parameters> </ParameterList> </Constructor> The key point here is that even if in C++ swap() is just a method of SwapRateHelper returning shared_ptr<VanillaSwap>, in QLXL is used as "constructor" of a new Object wrapping the shared_ptr<VanillaSwap> does this answer your question? ciao -- Nando |