clang++ cannot compile quantlib

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

clang++ cannot compile quantlib

Leon Sit
dear all

I was using clang++ to compile quantlib I get the following error

if clang++ -DHAVE_CONFIG_H -I. -I. -I../../ql  -I../.. -I../..   -g -O2 -MT BermudanSwaption.o -MD -MP -MF ".deps/BermudanSwaption.Tpo" -c -o BermudanSwaption.o BermudanSwaption.cpp; \
then mv -f ".deps/BermudanSwaption.Tpo" ".deps/BermudanSwaption.Po"; else rm -f ".deps/BermudanSwaption.Tpo"; exit 1; fi
In file included from BermudanSwaption.cpp:22:
In file included from ../../ql/quantlib.hpp:42:
In file included from ../../ql/experimental/all.hpp:11:
In file included from ../../ql/experimental/credit/all.hpp:24:
../../ql/experimental/credit/recursivecdoengine.hpp:66:11: error: no matching constructor for initialization of 'Handle<QuantLib::Quote> const'
        : correlQuote_(correl), copula_(), nBuckets_(nbuckets),
          ^            ~~~~~~
In file included from BermudanSwaption.cpp:22:
In file included from ../../ql/quantlib.hpp:20:
../../ql/handle.hpp:41:11: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'Handle<QuantLib::SimpleQuote> const' to
      'QuantLib::Handle<QuantLib::Quote> const' for 1st argument
    class Handle {
          ^
../../ql/handle.hpp:75:18: note: candidate constructor not viable: no known conversion from 'Handle<QuantLib::SimpleQuote> const' to 'boost::shared_ptr<QuantLib::Quote> const'
      for 1st argument
        explicit Handle(const boost::shared_ptr<T>& p = boost::shared_ptr<T>(),
                 ^
../../ql/handle.hpp:77:18: note: candidate constructor not viable: no known conversion from 'Handle<QuantLib::SimpleQuote> const' to 'QuantLib::Quote *' for 1st argument
        explicit Handle(T* p,
                 ^
In file included from BermudanSwaption.cpp:22:
In file included from ../../ql/quantlib.hpp:42:
In file included from ../../ql/experimental/all.hpp:11:
In file included from ../../ql/experimental/credit/all.hpp:24:
../../ql/experimental/credit/recursivecdoengine.hpp:68:29: error: no matching function for call to 'factorReduction'
          oneFactorCorrels_(factorReduction(Matrix(correlMtrx)))
                            ^~~~~~~~~~~~~~~
In file included from BermudanSwaption.cpp:22:
In file included from ../../ql/quantlib.hpp:42:
In file included from ../../ql/experimental/all.hpp:11:
In file included from ../../ql/experimental/credit/all.hpp:24:
In file included from ../../ql/experimental/credit/recursivecdoengine.hpp:26:
../../ql/math/matrixutilities/factorreduction.hpp:44:36: note: candidate function not viable: no known conversion from 'QuantLib::Matrix' to 'QuantLib::Matrix &' for 1st
      argument
    Disposable<std::vector<Real> > factorReduction(Matrix& mtrx,
                                   ^
In file included from BermudanSwaption.cpp:22:
In file included from ../../ql/quantlib.hpp:46:
In file included from ../../ql/math/all.hpp:31:
In file included from ../../ql/math/interpolations/all.hpp:18:
../../ql/math/interpolations/multicubicspline.hpp:276:13: error: 'mutable' cannot be applied to references
            mutable data_table &y2_;
            ^
../../ql/math/interpolations/multicubicspline.hpp:277:13: error: 'mutable' cannot be applied to references
            mutable output_data &v_;
            ^
../../ql/math/interpolations/multicubicspline.hpp:336:13: error: 'mutable' cannot be applied to references
            mutable data_table &y2_;
            ^
../../ql/math/interpolations/multicubicspline.hpp:337:13: error: 'mutable' cannot be applied to references
            mutable output_data &v_, &v1_, &v2_;
            ^
../../ql/math/interpolations/multicubicspline.hpp:337:13: error: 'mutable' cannot be applied to references
../../ql/math/interpolations/multicubicspline.hpp:337:13: error: 'mutable' cannot be applied to references
In file included from BermudanSwaption.cpp:22:
In file included from ../../ql/quantlib.hpp:53:
In file included from ../../ql/termstructures/all.hpp:15:
In file included from ../../ql/termstructures/inflation/all.hpp:6:
../../ql/termstructures/inflation/interpolatedzeroinflationcurve.hpp:110:7: error: no matching constructor for initialization of 'QuantLib::ZeroInflationTermStructure'
    : ZeroInflationTermStructure(referenceDate, calendar, dayCounter,
      ^                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from BermudanSwaption.cpp:22:
In file included from ../../ql/quantlib.hpp:40:
In file included from ../../ql/cashflows/all.hpp:6:
In file included from ../../ql/cashflows/capflooredinflationcoupon.hpp:27:
In file included from ../../ql/cashflows/yoyinflationcoupon.hpp:28:
In file included from ../../ql/indexes/inflationindex.hpp:29:
../../ql/termstructures/inflationtermstructure.hpp:139:9: note: candidate constructor not viable: no known conversion from 'QuantLib::Period const' to 'Rate' (aka 'double') for
      4th argument
        ZeroInflationTermStructure(const Date& referenceDate,
        ^
../../ql/termstructures/inflationtermstructure.hpp:149:9: note: candidate constructor not viable: no known conversion from 'QuantLib::Date const' to 'Natural'
      (aka 'unsigned int') for 1st argument
        ZeroInflationTermStructure(Natural settlementDays,
        ^
../../ql/termstructures/inflationtermstructure.hpp:131:9: note: candidate constructor not viable: requires at most 7 arguments, but 8 were provided
        ZeroInflationTermStructure(const DayCounter& dayCounter,
        ^
../../ql/termstructures/inflationtermstructure.hpp:127:11: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 8 were provided
    class ZeroInflationTermStructure : public InflationTermStructure {
          ^
9 errors generated.
make[2]: *** [BermudanSwaption.o] Error 1
make[2]: Leaving directory `/home/leon_vm/Desktop/QuantLib-1.0.1/Examples/BermudanSwaption'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/leon_vm/Desktop/QuantLib-1.0.1/Examples'
make: *** [all-recursive] Error 1

Some of the errors might be caused by straighter type check. However the mutable reference should be illegal in c++, correct? Support for clang might be a good idea because it is a much faster compiler for building any decent size c++ programme and enfore much straighter c++ standard. I am sitting here now and rebuilding with g++ and it is taking at least 2x more time to compile each *.o file.

Thanks

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today
http://p.sf.net/sfu/msIE9-sfdev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users
Reply | Threaded
Open this post in threaded view
|

Re: clang++ cannot compile quantlib

Luigi Ballabio
On Thu, 2010-11-18 at 14:07 -0600, Leon Sit wrote:
> I was using clang++ to compile quantlib I get the following error
> [...]

Ok, those should be fixed now.  May you check out the latest revision
from Subversion and give it a try?

Thanks,
        Luigi


--

The shortest way to do many things is to do only one thing at once.
-- Samuel Smiles



------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
QuantLib-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-users