AI-Toolbox icon indicating copy to clipboard operation
AI-Toolbox copied to clipboard

Error at compilation: ‘begin’ was not declared in this scope for the Bandit Policies

Open Lip651 opened this issue 8 months ago • 2 comments
trafficstars

Hello,

I am having a compilation error at the make step during the installation. These are my settings:

g++ --version
g++ (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0

The error is occuring at line 22 in the file "AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp". Would you have any recommendation with respect to how I should modify the code ? I fear my compiler is too old. The full error message is:

/home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp: In constructor ‘AIToolbox::Factored::Bandit::MARMaxPolicy::MARMaxPolicy(const AIToolbox::Factored::Bandit::Experience&, AIToolbox::Vector, double, double, bool)’:
/home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:22:27: error: ‘begin’ was not declared in this scope
   22 |             for (auto r : ranges_) {
      |                           ^~~~~~~
/home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:22:27: note: suggested alternatives:
In file included from /usr/include/c++/10/vector:69,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Bandit/Policies/MARMaxPolicy.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:1:
/usr/include/c++/10/bits/range_access.h:108:37: note:   ‘std::begin’
  108 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
In file included from /usr/include/c++/10/bits/stl_iterator_base_types.h:71,
                 from /usr/include/c++/10/bits/stl_algobase.h:65,
                 from /usr/include/c++/10/vector:60,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Bandit/Policies/MARMaxPolicy.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:1:
/usr/include/c++/10/bits/iterator_concepts.h:921:10: note:   ‘std::__detail::begin’
  921 |     void begin(const auto&) = delete;
      |          ^~~~~
In file included from /usr/include/c++/10/vector:69,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Bandit/Policies/MARMaxPolicy.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:1:
/usr/include/c++/10/bits/range_access.h:855:44: note:   ‘std::ranges::__cust::begin’
  855 |     inline constexpr __cust_access::_Begin begin{};
      |                                            ^~~~~
/home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:22:27: error: ‘end’ was not declared in this scope
   22 |             for (auto r : ranges_) {
      |                           ^~~~~~~
/home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:22:27: note: suggested alternatives:
In file included from /usr/include/c++/10/vector:69,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Types.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/include/AIToolbox/Factored/Bandit/Policies/MARMaxPolicy.hpp:4,
                 from /home/master/Desktop/AI-Toolbox/src/Factored/Bandit/Policies/MARMaxPolicy.cpp:1:
/usr/include/c++/10/bits/range_access.h:110:37: note:   ‘std::end’
  110 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&) noexcept;
      |                                     ^~~
/usr/include/c++/10/bits/range_access.h:856:42: note:   ‘std::ranges::__cust::end’
  856 |     inline constexpr __cust_access::_End end{};
      |                                          ^~~
/usr/include/c++/10/bits/range_access.h:434:10: note:   ‘std::ranges::__cust_access::end’
  434 |     void end(const auto&) = delete;
      |          ^~~
make[2]: *** [src/CMakeFiles/AIToolboxFMDP.dir/build.make:370: src/CMakeFiles/AIToolboxFMDP.dir/Factored/Bandit/Policies/MARMaxPolicy.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1114: src/CMakeFiles/AIToolboxFMDP.dir/all] Error 2
make: *** [Makefile:101: all] Error 2

Any recommendation would be much appreciated. Best regards, Joachim

Lip651 avatar Mar 16 '25 16:03 Lip651