On Tue, 10 Dec 2013, Santiago Alonso Pérez Rubiano wrote:
I'm getting narrwoing conversion errors on the
files src/quadrature/quadrature_monomial_3D.C
and src/quadrature/quadrature_monomial_2D.C, e.g.
src/quadrature/quadrature_monomial_3D.C: In member function 'virtual void
libMesh::QMonomial::init_3D(libMeshEnums::ElemType, unsigned int)':
src/quadrature/quadrature_monomial_3D.C:58: error: narrowing conversion of
'(4.0e+0l / 3.0e+0l)' from 'long double' to 'const libMesh::Real' inside { }
I fixed that by going from long double to float : 4.L / 3.L to 4.f / 3.f ,
however I wanted to know if anyone has ever seen this kind of errors?
The C++11 standard has gotten stricter about what kinds of implicit
conversions it will allow. Changing those constants to float is *not*
the right answer (you'll lose too much precision), but wrapping them
in a static_cast<libMesh::Real>() should fix things for you.
Apologies for the inconvenience. I've been using libMesh in C++11
(and C++1x) apps for a little while now, but it didn't even occur to
me to double-check that the library code itself was C++11-conforming.
I'll try to get to a testing/fixing pass next week.
---
Roy
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users