Compiling libloadorder says that rbegin and rend were not decaled in this scope and
that they should be boost::rbegin / boost::rend.
after perfixing all occurrences of rbegin / rend with boost:: the above error went away;
however, now it is complaining about codecvt not being found.
[ 46%] Building CXX object CMakeFiles/loadorder.dir/src/backend/LoadOrder.cpp.o
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp: In member function ‘void liblo::LoadOrder::loadActivePlugins()’:
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp:462:40: error: ‘rbegin’ was not declared in this scope
for (auto it = rbegin(loadOrder); numActivePlugins > maxActivePlugins && it != rend(loadOrder); ++it) {
^
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp:462:40: note: suggested alternative:
In file included from /usr/include/boost/range/functions.hpp:23:0,
from /usr/include/boost/range/iterator_range_core.hpp:28,
from /usr/include/boost/range/iterator_range.hpp:13,
from /usr/include/boost/iostreams/traits.hpp:39,
from /usr/include/boost/iostreams/detail/dispatch.hpp:17,
from /usr/include/boost/iostreams/flush.hpp:17,
from /usr/include/boost/iostreams/close.hpp:18,
from /usr/include/boost/iostreams/device/mapped_file.hpp:20,
from /home/william/temp/libloadorder/build/external/src/libespm/include/libespm/Plugin.h:30,
from /home/william/temp/libloadorder/src/backend/Plugin.h:32,
from /home/william/temp/libloadorder/src/backend/LoadOrder.h:29,
from /home/william/temp/libloadorder/src/backend/LoadOrder.cpp:26:
/usr/include/boost/range/rbegin.hpp:46:1: note: ‘boost::rbegin’
rbegin( const C& c )
^
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp:462:102: error: ‘rend’ was not declared in this scope
for (auto it = rbegin(loadOrder); numActivePlugins > maxActivePlugins && it != rend(loadOrder); ++it) {
^
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp:462:102: note: suggested alternative:
In file included from /usr/include/boost/range/functions.hpp:24:0,
from /usr/include/boost/range/iterator_range_core.hpp:28,
from /usr/include/boost/range/iterator_range.hpp:13,
from /usr/include/boost/iostreams/traits.hpp:39,
from /usr/include/boost/iostreams/detail/dispatch.hpp:17,
from /usr/include/boost/iostreams/flush.hpp:17,
from /usr/include/boost/iostreams/close.hpp:18,
from /usr/include/boost/iostreams/device/mapped_file.hpp:20,
from /home/william/temp/libloadorder/build/external/src/libespm/include/libespm/Plugin.h:30,
from /home/william/temp/libloadorder/src/backend/Plugin.h:32,
from /home/william/temp/libloadorder/src/backend/LoadOrder.h:29,
from /home/william/temp/libloadorder/src/backend/LoadOrder.cpp:26:
/usr/include/boost/range/rend.hpp:46:1: note: ‘boost::rend’
rend( const C& c )
^
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp: In lambda function:
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp:519:38: error: ‘rbegin’ was not declared in this scope
return *rbegin(timestamps) + 60;
^
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp:519:38: note: suggested alternative:
In file included from /usr/include/boost/range/functions.hpp:23:0,
from /usr/include/boost/range/iterator_range_core.hpp:28,
from /usr/include/boost/range/iterator_range.hpp:13,
from /usr/include/boost/iostreams/traits.hpp:39,
from /usr/include/boost/iostreams/detail/dispatch.hpp:17,
from /usr/include/boost/iostreams/flush.hpp:17,
from /usr/include/boost/iostreams/close.hpp:18,
from /usr/include/boost/iostreams/device/mapped_file.hpp:20,
from /home/william/temp/libloadorder/build/external/src/libespm/include/libespm/Plugin.h:30,
from /home/william/temp/libloadorder/src/backend/Plugin.h:32,
from /home/william/temp/libloadorder/src/backend/LoadOrder.h:29,
from /home/william/temp/libloadorder/src/backend/LoadOrder.cpp:26:
/usr/include/boost/range/rbegin.hpp:46:1: note: ‘boost::rbegin’
rbegin( const C& c )
^
In file included from /usr/include/c++/4.9/algorithm:62:0,
from /usr/include/boost/smart_ptr/shared_ptr.hpp:42,
from /usr/include/boost/shared_ptr.hpp:17,
from /usr/include/boost/filesystem/path.hpp:29,
from /usr/include/boost/filesystem.hpp:16,
from /home/william/temp/libloadorder/build/external/src/libespm/include/libespm/Plugin.h:27,
from /home/william/temp/libloadorder/src/backend/Plugin.h:32,
from /home/william/temp/libloadorder/src/backend/LoadOrder.h:29,
from /home/william/temp/libloadorder/src/backend/LoadOrder.cpp:26:
/usr/include/c++/4.9/bits/stl_algo.h: In instantiation of ‘_OIter std::generate_n(_OIter, _Size, _Generator) [with _OIter = std::insert_iterator<std::set<long int> >; _Size = long unsigned int; _Generator = liblo::LoadOrder::saveTimestampLoadOrder()::<lambda()>]’:
/home/william/temp/libloadorder/src/backend/LoadOrder.cpp:520:10: required from here
/usr/include/c++/4.9/bits/stl_algo.h:4325:11: error: no match for ‘operator=’ (operand types are ‘std::insert_iterator<std::set<long int> >’ and ‘void’)
*__first = __gen();
^
/usr/include/c++/4.9/bits/stl_algo.h:4325:11: note: candidates are:
In file included from /usr/include/c++/4.9/bits/stl_algobase.h:67:0,
from /usr/include/c++/4.9/bits/char_traits.h:39,
from /usr/include/c++/4.9/string:40,
from /home/william/temp/libloadorder/src/backend/Plugin.h:29,
from /home/william/temp/libloadorder/src/backend/LoadOrder.h:29,
from /home/william/temp/libloadorder/src/backend/LoadOrder.cpp:26:
/usr/include/c++/4.9/bits/stl_iterator.h:639:7: note: std::insert_iterator<_Container>& std::insert_iterator<_Container>::operator=(const typename _Container::value_type&) [with _Container = std::set<long int>; typename _Container::value_type = long int]
operator=(const typename _Container::value_type& __value)
^
/usr/include/c++/4.9/bits/stl_iterator.h:639:7: note: no known conversion for argument 1 from ‘void’ to ‘const value_type& {aka const long int&}’
/usr/include/c++/4.9/bits/stl_iterator.h:647:7: note: std::insert_iterator<_Container>& std::insert_iterator<_Container>::operator=(typename _Container::value_type&&) [with _Container = std::set<long int>; typename _Container::value_type = long int]
operator=(typename _Container::value_type&& __value)
^
/usr/include/c++/4.9/bits/stl_iterator.h:647:7: note: no known conversion for argument 1 from ‘void’ to ‘std::set<long int>::value_type&& {aka long int&&}’
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note: std::insert_iterator<std::set<long int> >& std::insert_iterator<std::set<long int> >::operator=(const std::insert_iterator<std::set<long int> >&)
class insert_iterator
^
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note: no known conversion for argument 1 from ‘void’ to ‘const std::insert_iterator<std::set<long int> >&’
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note: std::insert_iterator<std::set<long int> >& std::insert_iterator<std::set<long int> >::operator=(std::insert_iterator<std::set<long int> >&&)
/usr/include/c++/4.9/bits/stl_iterator.h:588:11: note: no known conversion for argument 1 from ‘void’ to ‘std::insert_iterator<std::set<long int> >&&’
CMakeFiles/loadorder.dir/build.make:123: recipe for target 'CMakeFiles/loadorder.dir/src/backend/LoadOrder.cpp.o' failed
make[2]: *** [CMakeFiles/loadorder.dir/src/backend/LoadOrder.cpp.o] Error 1
CMakeFiles/Makefile2:130: recipe for target 'CMakeFiles/loadorder.dir/all' failed
make[1]: *** [CMakeFiles/loadorder.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2
[ 51%] Building CXX object CMakeFiles/loadorder.dir/src/api/libloadorder.cpp.o
/home/william/temp/libloadorder/src/api/libloadorder.cpp:31:19: fatal error: codecvt: No such file or directory
#include <codecvt>
^
compilation terminated.
CMakeFiles/loadorder.dir/build.make:238: recipe for target 'CMakeFiles/loadorder.dir/src/api/libloadorder.cpp.o' failed
make[2]: *** [CMakeFiles/loadorder.dir/src/api/libloadorder.cpp.o] Error 1
CMakeFiles/Makefile2:130: recipe for target 'CMakeFiles/loadorder.dir/all' failed
make[1]: *** [CMakeFiles/loadorder.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2