In file included from backend/Rand.hpp:4, from backend/SnekGame3D.hpp:7, from main.cpp:4: backend/Point3D.hpp:67:46: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts' 67 | Point3D operator + (const Point3D& rhs) | ^~~~ backend/Point3D.hpp: In instantiation of 'Point3D Point3D::operator+(const Point3D&) [with auto:1 = signed char; T = unsigned char]': backend/SnekGame3D.hpp:63:27: required from 'bool SnekGame3D::nextFrame(char) [with mint = unsigned char]' main.cpp:61:17: required from here backend/Point3D.hpp:69:27: warning: narrowing conversion of '(((int)((Point3D*)this)->Point3D::x) + ((int)rhs.Point3D::x))' from 'int' to 'unsigned char' [-Wnarrowing] 69 | return {x + rhs.x, y + rhs.y, z + rhs.z}; | ~~^~~~~~~ backend/Point3D.hpp:69:38: warning: narrowing conversion of '(((int)((Point3D*)this)->Point3D::y) + ((int)rhs.Point3D::y))' from 'int' to 'unsigned char' [-Wnarrowing] 69 | return {x + rhs.x, y + rhs.y, z + rhs.z}; | ~~^~~~~~~ backend/Point3D.hpp:69:49: warning: narrowing conversion of '(((int)((Point3D*)this)->Point3D::z) + ((int)rhs.Point3D::z))' from 'int' to 'unsigned char' [-Wnarrowing] 69 | return {x + rhs.x, y + rhs.y, z + rhs.z}; | ~~^~~~~~~ /usr/bin/ld: /tmp/cctm4vgB.o: in function `__static_initialization_and_destruction_0(int, int)': main.cpp:(.text+0x3ae): undefined reference to `std::ios_base::Init::Init()' /usr/bin/ld: main.cpp:(.text+0x3c9): undefined reference to `std::ios_base::Init::~Init()' /usr/bin/ld: /tmp/cctm4vgB.o: in function `std::random_device::random_device()': main.cpp:(.text._ZNSt13random_deviceC2Ev[_ZNSt13random_deviceC5Ev]+0x24): undefined reference to `std::allocator::allocator()' /usr/bin/ld: main.cpp:(.text._ZNSt13random_deviceC2Ev[_ZNSt13random_deviceC5Ev]+0x51): undefined reference to `std::random_device::_M_init(std::__cxx11::basic_string, std::allocator > const&)' /usr/bin/ld: main.cpp:(.text._ZNSt13random_deviceC2Ev[_ZNSt13random_deviceC5Ev]+0x5d): undefined reference to `std::__cxx11::basic_string, std::allocator >::~basic_string()' /usr/bin/ld: main.cpp:(.text._ZNSt13random_deviceC2Ev[_ZNSt13random_deviceC5Ev]+0x69): undefined reference to `std::allocator::~allocator()' /usr/bin/ld: main.cpp:(.text._ZNSt13random_deviceC2Ev[_ZNSt13random_deviceC5Ev]+0x8a): undefined reference to `std::__cxx11::basic_string, std::allocator >::~basic_string()' /usr/bin/ld: main.cpp:(.text._ZNSt13random_deviceC2Ev[_ZNSt13random_deviceC5Ev]+0x9b): undefined reference to `std::allocator::~allocator()' /usr/bin/ld: /tmp/cctm4vgB.o: in function `std::random_device::~random_device()': main.cpp:(.text._ZNSt13random_deviceD2Ev[_ZNSt13random_deviceD5Ev]+0x14): undefined reference to `std::random_device::_M_fini()' /usr/bin/ld: /tmp/cctm4vgB.o: in function `std::random_device::operator()()': main.cpp:(.text._ZNSt13random_deviceclEv[_ZNSt13random_deviceclEv]+0x14): undefined reference to `std::random_device::_M_getval()' /usr/bin/ld: /tmp/cctm4vgB.o: in function `std::__cxx11::basic_string, std::allocator >::_Alloc_hider::~_Alloc_hider()': main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderD2Ev[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderD5Ev]+0x14): undefined reference to `std::allocator::~allocator()' /usr/bin/ld: /tmp/cctm4vgB.o: in function `std::__cxx11::basic_string, std::allocator >::basic_string >(char const*, std::allocator const&)': main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC5IS3_EEPKcRKS3_]+0x21): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_local_data()' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC5IS3_EEPKcRKS3_]+0x36): undefined reference to `std::__cxx11::basic_string, std::allocator >::_Alloc_hider::_Alloc_hider(char*, std::allocator const&)' /usr/bin/ld: /tmp/cctm4vgB.o: in function `SnekGame3D::SnekGame3D(unsigned char, unsigned char, unsigned char)': main.cpp:(.text._ZN10SnekGame3DIhEC2Ehhh[_ZN10SnekGame3DIhEC5Ehhh]+0x13c): undefined reference to `std::runtime_error::runtime_error(char const*)' /usr/bin/ld: main.cpp:(.text._ZN10SnekGame3DIhEC2Ehhh[_ZN10SnekGame3DIhEC5Ehhh]+0x148): undefined reference to `std::runtime_error::~runtime_error()' /usr/bin/ld: /tmp/cctm4vgB.o: in function `std::_Deque_base, std::allocator > >::_M_initialize_map(unsigned long)': main.cpp:(.text._ZNSt11_Deque_baseI7Point3DIhESaIS1_EE17_M_initialize_mapEm[_ZNSt11_Deque_baseI7Point3DIhESaIS1_EE17_M_initialize_mapEm]+0x175): undefined reference to `__cxa_begin_catch' /usr/bin/ld: main.cpp:(.text._ZNSt11_Deque_baseI7Point3DIhESaIS1_EE17_M_initialize_mapEm[_ZNSt11_Deque_baseI7Point3DIhESaIS1_EE17_M_initialize_mapEm]+0x1af): undefined reference to `__cxa_rethrow' /usr/bin/ld: main.cpp:(.text._ZNSt11_Deque_baseI7Point3DIhESaIS1_EE17_M_initialize_mapEm[_ZNSt11_Deque_baseI7Point3DIhESaIS1_EE17_M_initialize_mapEm]+0x1b7): undefined reference to `__cxa_end_catch' /usr/bin/ld: /tmp/cctm4vgB.o: in function `void std::__cxx11::basic_string, std::allocator >::_M_construct(char const*, char const*, std::forward_iterator_tag)': main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0x59): undefined reference to `std::__throw_logic_error(char const*)' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0x92): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_create(unsigned long&, unsigned long)' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0xa4): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_data(char*)' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0xb7): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_capacity(unsigned long)' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0xc3): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_data() const' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0xd9): undefined reference to `std::__cxx11::basic_string, std::allocator >::_S_copy_chars(char*, char const*, char const*)' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0xec): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_set_length(unsigned long)' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0x106): undefined reference to `__cxa_begin_catch' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0x112): undefined reference to `std::__cxx11::basic_string, std::allocator >::_M_dispose()' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0x117): undefined reference to `__cxa_rethrow' /usr/bin/ld: main.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag]+0x11f): undefined reference to `__cxa_end_catch' /usr/bin/ld: /tmp/cctm4vgB.o: in function `std::_Deque_base, std::allocator > >::_M_create_nodes(Point3D**, Point3D**)': main.cpp:(.text._ZNSt11_Deque_baseI7Point3DIhESaIS1_EE15_M_create_nodesEPPS1_S5_[_ZNSt11_Deque_baseI7Point3DIhESaIS1_EE15_M_create_nodesEPPS1_S5_]+0x47): undefined reference to `__cxa_begin_catch' /usr/bin/ld: main.cpp:(.text._ZNSt11_Deque_baseI7Point3DIhESaIS1_EE15_M_create_nodesEPPS1_S5_[_ZNSt11_Deque_baseI7Point3DIhESaIS1_EE15_M_create_nodesEPPS1_S5_]+0x63): undefined reference to `__cxa_rethrow' /usr/bin/ld: main.cpp:(.text._ZNSt11_Deque_baseI7Point3DIhESaIS1_EE15_M_create_nodesEPPS1_S5_[_ZNSt11_Deque_baseI7Point3DIhESaIS1_EE15_M_create_nodesEPPS1_S5_]+0x6b): undefined reference to `__cxa_end_catch' /usr/bin/ld: /tmp/cctm4vgB.o: in function `void std::deque, std::allocator > >::_M_push_back_aux >(Point3D&&)': main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_]+0x41): undefined reference to `std::__throw_length_error(char const*)' /usr/bin/ld: main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_]+0xcc): undefined reference to `__cxa_begin_catch' /usr/bin/ld: main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_]+0xef): undefined reference to `__cxa_rethrow' /usr/bin/ld: main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE16_M_push_back_auxIJS1_EEEvDpOT_]+0xf7): undefined reference to `__cxa_end_catch' /usr/bin/ld: /tmp/cctm4vgB.o: in function `void std::deque, std::allocator > >::_M_push_front_aux >(Point3D&&)': main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_]+0x41): undefined reference to `std::__throw_length_error(char const*)' /usr/bin/ld: main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_]+0xd0): undefined reference to `__cxa_begin_catch' /usr/bin/ld: main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_]+0x103): undefined reference to `__cxa_rethrow' /usr/bin/ld: main.cpp:(.text._ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_[_ZNSt5dequeI7Point3DIhESaIS1_EE17_M_push_front_auxIJS1_EEEvDpOT_]+0x10b): undefined reference to `__cxa_end_catch' /usr/bin/ld: /tmp/cctm4vgB.o: in function `__gnu_cxx::new_allocator*>::deallocate(Point3D**, unsigned long)': main.cpp:(.text._ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE10deallocateEPS3_m[_ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE10deallocateEPS3_m]+0x2b): undefined reference to `operator delete(void*, unsigned long)' /usr/bin/ld: /tmp/cctm4vgB.o: in function `__gnu_cxx::new_allocator*>::allocate(unsigned long, void const*)': main.cpp:(.text._ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE8allocateEmPKv[_ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE8allocateEmPKv]+0x45): undefined reference to `std::__throw_bad_array_new_length()' /usr/bin/ld: main.cpp:(.text._ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE8allocateEmPKv[_ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE8allocateEmPKv]+0x4a): undefined reference to `std::__throw_bad_alloc()' /usr/bin/ld: main.cpp:(.text._ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE8allocateEmPKv[_ZN9__gnu_cxx13new_allocatorIP7Point3DIhEE8allocateEmPKv]+0x5a): undefined reference to `operator new(unsigned long)' /usr/bin/ld: /tmp/cctm4vgB.o: in function `__gnu_cxx::new_allocator >::deallocate(Point3D*, unsigned long)': main.cpp:(.text._ZN9__gnu_cxx13new_allocatorI7Point3DIhEE10deallocateEPS2_m[_ZN9__gnu_cxx13new_allocatorI7Point3DIhEE10deallocateEPS2_m]+0x30): undefined reference to `operator delete(void*, unsigned long)' /usr/bin/ld: /tmp/cctm4vgB.o: in function `__gnu_cxx::new_allocator >::allocate(unsigned long, void const*)': main.cpp:(.text._ZN9__gnu_cxx13new_allocatorI7Point3DIhEE8allocateEmPKv[_ZN9__gnu_cxx13new_allocatorI7Point3DIhEE8allocateEmPKv]+0x45): undefined reference to `std::__throw_bad_array_new_length()' /usr/bin/ld: main.cpp:(.text._ZN9__gnu_cxx13new_allocatorI7Point3DIhEE8allocateEmPKv[_ZN9__gnu_cxx13new_allocatorI7Point3DIhEE8allocateEmPKv]+0x4a): undefined reference to `std::__throw_bad_alloc()' /usr/bin/ld: main.cpp:(.text._ZN9__gnu_cxx13new_allocatorI7Point3DIhEE8allocateEmPKv[_ZN9__gnu_cxx13new_allocatorI7Point3DIhEE8allocateEmPKv]+0x60): undefined reference to `operator new(unsigned long)' /usr/bin/ld: /tmp/cctm4vgB.o:(.data.rel.local.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0' collect2: error: ld returned 1 exit status