Hi,
the following has been reported in Debian at https://bugs.debian.org/811918 against GDL 0.9.6v2:
This package fails to build with GCC 6. GCC 6 has not been released
yet, but it's expected that GCC 6 will become the default compiler for
stretch.
Note that only the first error is reported; there might be more. You
can find a snapshot of GCC 6 in experimental. To build with GCC 6,
you can set CC=gcc-6 CXX=g++-6 explicitly.
You may be able to find out more about this issue at
https://gcc.gnu.org/gcc-6/changes.html
sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
...
/<<pkgbuilddir>>/src/typedefs.hpp: In member function 'Guard<t>& Guard<t>::operator=(Guard<t>&)':
/<<pkgbuilddir>>/src/typedefs.hpp:238:21: error: return-statement with no value, in function returning 'Guard<t>&' [-fpermissive]
if( &r == this) return;
^~~~~~</t></pkgbuilddir></t></t></t></pkgbuilddir>
-> error
/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h:442:63: warning: ignoring attributes on template argument 'Eigen::internal::Packet2d {aka __vector(2) double}'
template<> struct conj_helper<packet1cd, packet2d,="" false,false="">
^</packet1cd,>In file included from /<<pkgbuilddir>>/src/datatypes.hpp:32:0,
from /<<pkgbuilddir>>/src/arrayindex.hpp:24,
from /<<pkgbuilddir>>/src/allix.cpp:19:
/<<pkgbuilddir>>/src/typedefs.hpp: In member function 'Guard<t>& Guard<t>::operator=(Guard<t>&)':
/<<pkgbuilddir>>/src/typedefs.hpp:238:21: error: return-statement with no value, in function returning 'Guard<t>&' [-fpermissive]
if( &r == this) return;
^~~~~~
...
In file included from /<<pkgbuilddir>>/src/datatypes.hpp:499:0,
from /<<pkgbuilddir>>/src/dstructdesc.cpp:22:
/<<pkgbuilddir>>/src/specializations.hpp: At global scope:
/<<pkgbuilddir>>/src/specializations.hpp:537:65: error: 'operator>>' is not a template function
std::istream& operator>>(std::istream& i, Data_<spdfloat>& data_);
^</spdfloat></pkgbuilddir></pkgbuilddir></pkgbuilddir></pkgbuilddir></t></pkgbuilddir></t></t></t></pkgbuilddir></pkgbuilddir></pkgbuilddir></pkgbuilddir>
-> error
/<<pkgbuilddir>>/src/specializations.hpp:539:66: error: 'operator>>' is not a template function
std::istream& operator>>(std::istream& i, Data_<spddouble>& data_);
^</spddouble></pkgbuilddir>/<<pkgbuilddir>>/src/specializations.hpp:541:67: error: 'operator>>' is not a template function
std::istream& operator>>(std::istream& i, Data_<spdcomplex>& data_);
^</spdcomplex></pkgbuilddir>
We're hitting this now in Fedora as we are moving to gcc 6 for Fedora 24.
Is it time to replace the Guard stuff with unique_ptr (or shared_ptr)?
In the mingw gcc, auto_ptr can be an error but unique_ptr can be unknown if
c++11 isn't specified. so ...
Also see:
fixed. (I have not checked it but am confident).
@Orion: Please open a new ticket for the operator>> stuff.
Filed #688 for the operator errors
For reference: http://gnudatalanguage.cvs.sourceforge.net/viewvc/gnudatalanguage/gdl/src/typedefs.hpp?r1=1.76&r2=1.77