答复: ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

Posted by cheng li on
URL: http://quantlib.414.s1.nabble.com/ql-experimental-math-latentmodel-hpp-failed-at-Line-750-on-visual-studio-tp15940p15945.html

Hi Luigi,

I have found more issues when I build the examples on windows with visual studio 2012

1. ql\experimental\credit\randomlosslatentmodel.hpp Line 103

  #if !defined(QL_PATCH_MSVC90)
        friend class RandomLM<RandomLossLM, copulaPolicy, USNG>;
    protected:
  #else
    public:
  #endif  

  Error 34 error C3200: 'QuantLib::RandomLossLM<copulaPolicy,USNG>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template

This issue can be resolved by replacing QL_PATCH_MSVC90 with _MSC_VER as the comment says...

2. ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 831

RandomLM<RandomDefaultLM, copulaPolicy, USNG>(copula->numFactors(), copula->size(), copula->copula(),

Error 1 error C3200: 'QuantLib::RandomDefaultLM<copulaPolicy>' : invalid template argument for template parameter 'derivedRandomLM', expected a class template

This issue also goes for the same file at line 814 and

This can be solved by replacing the original line with RandomLM(copula->numFactors(), copula->size(), copula->copula(),

3. ql\experimental\credit\binomiallossmodel.hpp at Line 394

distrib.insert(std::make_pair<Real, Probability>(lossPts[i],
                //capped, some situations giving a very small probability over 1
                std::min(sum+values[i],1.)
                ));

Error 9 error C2664: 'std::make_pair' : cannot convert parameter 1 from 'double' to 'QuantLib::Real &&'

This error is rather strange and the error message seems ridiculous...

The same issue goes for ql\experimental\credit\randomdefaultlatentmodel.hpp at Line 394 and 398.

This issue can be resolved by replacing make_pair with pair.

I am not sure all these above fix will work properly with gcc...

Regards,
Cheng

-----邮件原件-----
发件人: Luigi Ballabio [mailto:[hidden email]]
发送时间: 2014年10月7日 15:51
收件人: cheng li
抄送: QuantLib users
主题: Re: [Quantlib-users] ql/experimental/math/latentmodel.hpp failed at Line 750 on visual studio

It's fixed now, thanks. Strange that gcc didn't catch this...

Luigi


On Tue, Oct 7, 2014 at 6:49 AM, cheng li <[hidden email]> wrote:

> Hi Team,
>
>
>
> I find this line can’t be compiled:
>
>
>
> explicit FactorSampler(const LatentModel<TC>::copulaType& copula,
>
>                                BigNatural seed = 0)
>
>
>
> Without typename
>
>
>
> Regards,
>
> Cheng
>
>
> ----------------------------------------------------------------------
> -------- Meet PCI DSS 3.0 Compliance Requirements with EventLog
> Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI
> DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download
> White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with
> EventLog Analyzer
> http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.
> clktrk _______________________________________________
> QuantLib-users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-users
>



--
<https://implementingquantlib.blogspot.com>
<https://twitter.com/lballabio>


------------------------------------------------------------------------------
Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer
Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports
Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper
Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer
http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users