eglaysher / rlvm

RealLive clone for Linux and OSX
http://rlvm.net
GNU General Public License v3.0
150 stars 25 forks source link

Fails to build with GCC 4.8.5 #80

Open jbeich opened 8 years ago

jbeich commented 8 years ago

Regressed since b762132. No issues building with GCC 4.9.4 or GCC 5.4.0. However, FreeBSD Ports still use lang/gcc port (currently tracks GCC 4.8.x series) by default to build C++11 projects on FreeBSD 9.x and earlier.

g++48 -o build/release/src/base/notification_registrar.o -c -O2 -pipe -D_GLIBCXX_USE_C99 -Wl,-rpath=/usr/local/lib/gcc48 -fno-strict-aliasing -Wl,-rpath=/usr/local/lib/gcc48 --ansi -Wall -Wno-sign-compare -Wno-narrowing -Wno-write-strings -std=c++11 -O2 -pipe -D_GLIBCXX_USE_C99 -Wl,-rpath=/usr/local/lib/gcc48 -fno-strict-aliasing -pthread -funsigned-char -DNDEBUG -DBOOST_DISABLE_ASSERTS -ffunction-sections -fdata-sections -DHAVE_CONFIG_H -DENABLE_NLS -DNO_SDL_GLEXT -D_REENTRANT -D_THREAD_SAFE -DCASE_SENSITIVE_FILESYSTEM -D_THREAD_SAFE -I/usr/local/include -Ibuild -Isrc -Ivendor -I/usr/local/include/SDL -I/usr/local/include/freetype2 -Ibuild/release -I. src/base/notification_registrar.cc
src/base/notification_registrar.cc: In member function 'void NotificationRegistrar::Remove(NotificationObserver*, NotificationType, const NotificationSource&)':
src/base/notification_registrar.cc:50:26: error: no matching function for call to 'std::vector<NotificationRegistrar::Record>::erase(__gnu_cxx::__normal_iterator<const NotificationRegistrar::Record*, std::vector<NotificationRegistrar::Record> >&)'
   registered_.erase(found);
                          ^
src/base/notification_registrar.cc:50:26: note: candidates are:
In file included from /usr/local/lib/gcc48/include/c++/vector:69:0,
                 from src/base/notification_registrar.h:9,
                 from src/base/notification_registrar.cc:5:
/usr/local/lib/gcc48/include/c++/bits/vector.tcc:134:5: note: std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(std::vector<_Tp, _Alloc>::iterator) [with _Tp = NotificationRegistrar::Record; _Alloc = std::allocator<NotificationRegistrar::Record>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<NotificationRegistrar::Record*, std::vector<NotificationRegistrar::Record> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = NotificationRegistrar::Record*]
     vector<_Tp, _Alloc>::
     ^
/usr/local/lib/gcc48/include/c++/bits/vector.tcc:134:5: note:   no known conversion for argument 1 from '__gnu_cxx::__normal_iterator<const NotificationRegistrar::Record*, std::vector<NotificationRegistrar::Record> >' to 'std::vector<NotificationRegistrar::Record>::iterator {aka __gnu_cxx::__normal_iterator<NotificationRegistrar::Record*, std::vector<NotificationRegistrar::Record> >}'
/usr/local/lib/gcc48/include/c++/bits/vector.tcc:146:5: note: std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(std::vector<_Tp, _Alloc>::iterator, std::vector<_Tp, _Alloc>::iterator) [with _Tp = NotificationRegistrar::Record; _Alloc = std::allocator<NotificationRegistrar::Record>; std::vector<_Tp, _Alloc>::iterator = __gnu_cxx::__normal_iterator<NotificationRegistrar::Record*, std::vector<NotificationRegistrar::Record> >; typename std::_Vector_base<_Tp, _Alloc>::pointer = NotificationRegistrar::Record*]
     vector<_Tp, _Alloc>::
     ^
/usr/local/lib/gcc48/include/c++/bits/vector.tcc:146:5: note:   candidate expects 2 arguments, 1 provided