Hi All,
FYI I created a new VM with the proper distribution 20.04LTS. Everything compiled fine. Ubuntu 21.10 was using gcc 11.## not gcc 9.##. I suspect this was the issue.
##################
I am trying to Install Esys -Particle on Ubuntu 21.10 (on VMware Virtual Machine )
I have followed the instructions at "https://answers.launchpad.net/esys-particle/+faq/3234"
I was able to progress all the way through part 3 without issue but failed at the "make" command giving me the following error(s) :
.... error: static assertion failed: comparison object must be invocable as const
770 | is_invocable_v<const _Compare&, const _Key&, const _Key&>
Any help or guidance is appreciated, Saad Haq
...THE FULL CONTEXT OF THE ERROR MESSAGE IS BELOW ...
[ 16%] Building CXX object Geometry/CMakeFiles/Geometry.dir/GougeBlock3D.cpp.o
In file included from /usr/include/c++/11/set:60,
from /home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/CircularNeighbourTable.h:23,
from /home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/GougeBlock3D.h:18,
from /home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/GougeBlock3D.cpp:16:
/usr/include/c++/11/bits/stl_tree.h: In instantiation of ‘static const _Key& std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_S_key(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type) [with _Key = BasicInteraction; _Val = BasicInteraction; _KeyOfValue = std::_Identity<BasicInteraction>; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Const_Link_type = const std::_Rb_tree_node<BasicInteraction>*]’:
/usr/include/c++/11/bits/stl_tree.h:2069:47: required from ‘std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_unique_pos(const key_type&) [with _Key = BasicInteraction; _Val = BasicInteraction; _KeyOfValue = std::_Identity<BasicInteraction>; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::key_type = BasicInteraction]’
/usr/include/c++/11/bits/stl_tree.h:2122:4: required from ‘std::pair<std::_Rb_tree_iterator<_Val>, bool> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_insert_unique(_Arg&&) [with _Arg = BasicInteraction; _Key = BasicInteraction; _Val = BasicInteraction; _KeyOfValue = std::_Identity<BasicInteraction>; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>]’
/usr/include/c++/11/bits/stl_set.h:521:25: required from ‘std::pair<typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator, bool> std::set<_Key, _Compare, _Alloc>::insert(std::set<_Key, _Compare, _Alloc>::value_type&&) [with _Key = BasicInteraction; _Compare = BILess; _Alloc = std::allocator<BasicInteraction>; typename std::_Rb_tree<_Key, _Key, std::_Identity<_Tp>, _Compare, typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other>::const_iterator = std::_Rb_tree<BasicInteraction, BasicInteraction, std::_Identity<BasicInteraction>, BILess, std::allocator<BasicInteraction> >::const_iterator; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key>::other = std::allocator<BasicInteraction>; typename __gnu_cxx::__alloc_traits<_Alloc>::rebind<_Key> = __gnu_cxx::__alloc_traits<std::allocator<BasicInteraction>, BasicInteraction>::rebind<BasicInteraction>; typename _Alloc::value_type = BasicInteraction; std::set<_Key, _Compare, _Alloc>::value_type = BasicInteraction]’
/home/shaq/src/ESyS-Particle/esys-particle-trunk/Geometry/GougeBlock3D.cpp:719:36: required from here
/usr/include/c++/11/bits/stl_tree.h:770:15: error: static assertion failed: comparison object must be invocable as const
770 | is_invocable_v<const _Compare&, const _Key&, const _Key&>,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/stl_tree.h:770:15: note: ‘std::is_invocable_v<const BILess&, const BasicInteraction&, const BasicInteraction&>’ evaluates to false
make[2]: *** [Geometry/CMakeFiles/Geometry.dir/build.make:329: Geometry/CMakeFiles/Geometry.dir/GougeBlock3D.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:765: Geometry/CMakeFiles/Geometry.dir/all] Error 2
make: *** [Makefile:149: all] Error 2