vle-forge / vle

Virtual Laboratory Environment
http://www.vle-project.org
GNU General Public License v3.0
21 stars 22 forks source link

vle fails to compile with GCC 8.1 #338

Closed sguyader closed 6 years ago

sguyader commented 6 years ago

System : Linux Manjaro (Archlinux) GCC 8.1.0 vle from git, master branch, commit 17a1c649

Error message:

[ 43%] Building CXX object src/vle/CMakeFiles/vlelib.dir/manager/Simulation.cpp.o
In file included from /home/sguyader/vle-record/vle-2.0.0/src/vle/translator/GraphTranslator.hpp:34,
                 from /home/sguyader/vle-record/vle-2.0.0/src/vle/translator/GraphTranslator.cpp:34:
/home/sguyader/vle-record/vle-2.0.0/src/vle/utils/Array.hpp:355:1: error: declaration of ‘void vle::utils::Array<T, Container>::swap(vle::utils::Array<T, Container>&) noexcept (noexcept (((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::swap(((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::m_c, c.m_c)))’ has a different exception specifier
 Array<T, Container>::swap(Array& c) noexcept(noexcept(swap(m_c, c.m_c)))
 ^~~~~~~~~~~~~~~~~~~
/home/sguyader/vle-record/vle-2.0.0/src/vle/utils/Array.hpp:114:10: note: from previous declaration ‘void vle::utils::Array<T, Container>::swap(vle::utils::Array<T, Container>&) noexcept (noexcept (swap(((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::m_c, c.m_c)))’
     void swap(Array& c) noexcept(noexcept(swap(m_c, c.m_c)));
          ^~~~
make[2]: *** [src/vle/CMakeFiles/vlelibstatic.dir/build.make:1012: src/vle/CMakeFiles/vlelibstatic.dir/translator/GraphTranslator.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 44%] Building CXX object src/vle/CMakeFiles/vlelib.dir/translator/GraphTranslator.cpp.o
[ 44%] Building CXX object src/vle/CMakeFiles/vlelib.dir/translator/MatrixTranslator.cpp.o
make[1]: *** [CMakeFiles/Makefile2:375: src/vle/CMakeFiles/vlelibstatic.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 44%] Building CXX object src/vle/CMakeFiles/vlelib.dir/vle.cpp.o
In file included from /home/sguyader/vle-record/vle-2.0.0/src/vle/translator/MatrixTranslator.hpp:34,
                 from /home/sguyader/vle-record/vle-2.0.0/src/vle/translator/MatrixTranslator.cpp:27:
/home/sguyader/vle-record/vle-2.0.0/src/vle/utils/Array.hpp:355:1: error: declaration of ‘void vle::utils::Array<T, Container>::swap(vle::utils::Array<T, Container>&) noexcept (noexcept (((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::swap(((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::m_c, c.m_c)))’ has a different exception specifier
 Array<T, Container>::swap(Array& c) noexcept(noexcept(swap(m_c, c.m_c)))
 ^~~~~~~~~~~~~~~~~~~
/home/sguyader/vle-record/vle-2.0.0/src/vle/utils/Array.hpp:114:10: note: from previous declaration ‘void vle::utils::Array<T, Container>::swap(vle::utils::Array<T, Container>&) noexcept (noexcept (swap(((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::m_c, c.m_c)))’
     void swap(Array& c) noexcept(noexcept(swap(m_c, c.m_c)));
          ^~~~
make[2]: *** [src/vle/CMakeFiles/vlelib.dir/build.make:1025: src/vle/CMakeFiles/vlelib.dir/translator/MatrixTranslator.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/sguyader/vle-record/vle-2.0.0/src/vle/translator/GraphTranslator.hpp:34,
                 from /home/sguyader/vle-record/vle-2.0.0/src/vle/translator/GraphTranslator.cpp:34:
/home/sguyader/vle-record/vle-2.0.0/src/vle/utils/Array.hpp:355:1: error: declaration of ‘void vle::utils::Array<T, Container>::swap(vle::utils::Array<T, Container>&) noexcept (noexcept (((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::swap(((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::m_c, c.m_c)))’ has a different exception specifier
 Array<T, Container>::swap(Array& c) noexcept(noexcept(swap(m_c, c.m_c)))
 ^~~~~~~~~~~~~~~~~~~
/home/sguyader/vle-record/vle-2.0.0/src/vle/utils/Array.hpp:114:10: note: from previous declaration ‘void vle::utils::Array<T, Container>::swap(vle::utils::Array<T, Container>&) noexcept (noexcept (swap(((vle::utils::Array<T, Container>*)(void)0)->vle::utils::Array<T, Container>::m_c, c.m_c)))’
     void swap(Array& c) noexcept(noexcept(swap(m_c, c.m_c)));
          ^~~~
make[2]: *** [src/vle/CMakeFiles/vlelib.dir/build.make:1012: src/vle/CMakeFiles/vlelib.dir/translator/GraphTranslator.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:412: src/vle/CMakeFiles/vlelib.dir/all] Error 2
make: *** [Makefile:163: all] Error 2

Adding set(CMAKE_CXX_STANDARD 11) to CMakeLists.txt produces a lot of errors too.

quesnel commented 6 years ago

I confirm. Travis shows these errors since gcc 8 [1]. I'll fix it quickly.

[1] https://travis-ci.org/vle-forge/vle?branch=master