Posted by
Luigi Ballabio-2 on
URL: http://quantlib.414.s1.nabble.com/compiling-with-Dev-C-tp2557p2560.html
Hi Toyin,
At 08:51 AM 6/5/03 +0100, Toyin Akin wrote:
>I'm currently playing with the McSimulation class and you currently have 2
>functions defined
>
>controlPricingEngine() and controlPathPricer().
>
>I understand the need for them, used higher up in the MCEuropeanEngine
>class, I just don't understand what actually
>gets returned. Does it always return null, or is it a instance of the stored
>"path_pricer_type" in the case of the
>controlPathPricer() function.
The default behavior is to return null. This can be overridden in derived
classes. There's still no example of it in the code, though.
>The controlPricingEngine() looks even more baffling as it refers to the
>abstract base class "PricingEngine" and this
>function has not been overloaded higher up.
>
>I guess the question I am really asking is what does : return
>Handle<PricingEngine>() actually do!!
>
>Forgive me if this is a stupid question. You guys sure know how to use
>advanced features of templates!!
No, templates are only here to confuse you :) Actually,
Handle<PricingEngine> controlPricingEngine() {
return Handle<PricingEngine>();
}
is only a safe translation of:
PricingEngine* controlPricingEngine() {
return 0;
}
That is, the default behavior is to return no engine. Derived classes can
override this and return whatever engine they want, upcast to
PricingEngine; for instance,
Handle<PricingEngine> derivedClass::controlPricingEngine() {
return Handle<PricingEngine>(new SuperDuperEngine(foo,bar));
}
which is the safe equivalent of:
PricingEngine* derivedClass::controlPricingEngine() {
return new SuperDuperEngine(foo,bar);
}
(safe in the sense that you needn't worry who and when is going to
deallocate the pointer)
>Another question, any plans to implement the calculate() function of the
>FDVanillaEngine?
Yes, but there's no timeframe for that.
Bye,
Luigi