Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch for compilation error for non-optimized builds #1237

Closed
richardroberts opened this issue Feb 26, 2018 · 4 comments
Closed

Patch for compilation error for non-optimized builds #1237

richardroberts opened this issue Feb 26, 2018 · 4 comments

Comments

@richardroberts
Copy link


Required Info
Camera Model D400
Firmware Version N/A
Operating System & Version Clang, Linux, Debian-based
Kernel Version (Linux Only) N/A
Platform PC
SDK Version 2.9.0

Issue Description

In a non-optimized build, the following compilation error occurs. It seems to be due to a call to sort() within src/sync.cpp. The custom comparator should have a const reference arguments according to C++ standard library requirements, but the provided one has non-constant reference arguments. I'm not sure why this only occurs in non-optimized builds... perhaps the function is optimized away otherwise since we're not using it?

The attached patch fixes this by making the comparator function use const reference arguments:
realsense_non_optimized_compilation_fix.patch.txt

Compilation error:

In file included from third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:4:
In file included from third_party/librealsense2/librealsense-2.9.0/src/proc/synthetic-stream.h:6:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/processing.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/streaming.h:5:
In file included from third_party/librealsense2/librealsense-2.

9.0/src/core/options.h:8:
In file included from third_party/librealsense2/librealsense-2.9.0/src/types.h:23:
In file included from third_party/stl/gcc3/algorithm:12:
In file included from third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/algorithm:62:
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:214:11: error: no matching function for call to object of type '(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)'
      if (_M_compare(__x, __x))
          ^~~~~~~~~~
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/predefined_ops.h:141:16: note: in instantiation of function template specialization 'std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)>::operator()<librealsense::frame_holder>' requested here
        { return bool(_M_comp(*__it, __val)); }
                      ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_heap.h:129:42: note: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_val<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> >::operator()<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, librealsense::frame_holder>' requested here
      while (__holeIndex > __topIndex && __comp(__first + __parent, __value))
                                         ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_heap.h:228:12: note: in instantiation of function template specialization 'std::__push_heap<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, long, librealsense::frame_holder, __gnu_cxx::__ops::_Iter_comp_val<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
      std::__push_heap(__first, __holeIndex, __topIndex, 
           ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_heap.h:333:9: note: in instantiation of function template specialization 'std::__adjust_heap<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, long, librealsense::frame_holder, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
          std::__adjust_heap(__first, __parent, __len, _GLIBCXX_MOVE(__value),
               ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1707:12: note: in instantiation of function template specialization 'std::__make_heap<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
      std::__make_heap(__first, __middle, __comp);
           ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1966:12: note: in instantiation of function template specialization 'std::__heap_select<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
      std::__heap_select(__first, __middle, __last, __comp);
           ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1981:13: note: in instantiation of function template specialization 'std::__partial_sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
              std::__partial_sort(__first, __last, __last, __comp);
                   ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:2001:9: note: in instantiation of function template specialization 'std::__introsort_loop<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, long, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
          std::__introsort_loop(__first, __last,
               ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:4751:12: note: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
      std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__CheckedCompare(__comp)));
           ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:22: note: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, (lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)>' requested here
                std::sort(match.begin(), match.end(), [](frame_holder& f1, frame_holder& f2)
                     ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: candidate function not viable: 1st argument ('const librealsense::frame_holder') would lose const qualifier
                std::sort(match.begin(), match.end(), [](frame_holder& f1, frame_holder& f2)
                                                      ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: conversion candidate of type 'bool (*)(librealsense::frame_holder &, librealsense::frame_holder &)'
In file included from third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:4:
In file included from third_party/librealsense2/librealsense-2.9.0/src/proc/synthetic-stream.h:6:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/processing.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/streaming.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/options.h:8:
In file included from third_party/librealsense2/librealsense-2.9.0/src/types.h:23:
In file included from third_party/stl/gcc3/algorithm:12:
In file included from third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/algorithm:62:
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:216:11: error: no matching function for call to object of type '(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)'
      if (_M_compare(__y, __y))
          ^~~~~~~~~~
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: candidate function not viable: 1st argument ('const librealsense::frame_holder') would lose const qualifier
                std::sort(match.begin(), match.end(), [](frame_holder& f1, frame_holder& f2)
                                                      ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: conversion candidate of type 'bool (*)(librealsense::frame_holder &, librealsense::frame_holder &)'
In file included from third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:4:
In file included from third_party/librealsense2/librealsense-2.9.0/src/proc/synthetic-stream.h:6:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/processing.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/streaming.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/options.h:8:
In file included from third_party/librealsense2/librealsense-2.9.0/src/types.h:23:
In file included from third_party/stl/gcc3/algorithm:12:
In file included from third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/algorithm:62:
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:218:17: error: no matching function for call to object of type '(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)'
      bool lt = _M_compare(__x, __y);
                ^~~~~~~~~~
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: candidate function not viable: 1st argument ('const librealsense::frame_holder') would lose const qualifier
                std::sort(match.begin(), match.end(), [](frame_holder& f1, frame_holder& f2)
                                                      ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: conversion candidate of type 'bool (*)(librealsense::frame_holder &, librealsense::frame_holder &)'
In file included from third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:4:
In file included from third_party/librealsense2/librealsense-2.9.0/src/proc/synthetic-stream.h:6:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/processing.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/streaming.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/options.h:8:
In file included from third_party/librealsense2/librealsense-2.9.0/src/types.h:23:
In file included from third_party/stl/gcc3/algorithm:12:
In file included from third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/algorithm:62:
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:227:14: error: no matching function for call to object of type '(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)'
      return _M_compare(__x, __y);
             ^~~~~~~~~~
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/predefined_ops.h:121:23: note: in instantiation of function template specialization 'std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)>::operator()<librealsense::frame_holder, librealsense::frame_holder>' requested here
        { return bool(_M_comp(*__it1, *__it2)); }
                      ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1709:6: note: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> >::operator()<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > > >' requested here
        if (__comp(__i, __first))
            ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1966:12: note: in instantiation of function template specialization 'std::__heap_select<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
      std::__heap_select(__first, __middle, __last, __comp);
           ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1981:13: note: in instantiation of function template specialization 'std::__partial_sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
              std::__partial_sort(__first, __last, __last, __comp);
                   ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:2001:9: note: in instantiation of function template specialization 'std::__introsort_loop<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, long, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
          std::__introsort_loop(__first, __last,
               ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:4751:12: note: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
      std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__CheckedCompare(__comp)));
           ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:22: note: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, (lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)>' requested here
                std::sort(match.begin(), match.end(), [](frame_holder& f1, frame_holder& f2)
                     ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: candidate function not viable: 1st argument ('const librealsense::frame_holder') would lose const qualifier
                std::sort(match.begin(), match.end(), [](frame_holder& f1, frame_holder& f2)
                                                      ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55: note: conversion candidate of type 'bool (*)(librealsense::frame_holder &, librealsense::frame_holder &)'
In file included from third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:4:
In file included from third_party/librealsense2/librealsense-2.9.0/src/proc/synthetic-stream.h:6:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/processing.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/streaming.h:5:
In file included from third_party/librealsense2/librealsense-2.9.0/src/core/options.h:5:
In file included from third_party/stl/gcc3/map:12:
In file included from third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/map:60:
In file included from third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_tree.h:61:
In file included from third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algobase.h:71:
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/predefined_ops.h:166:16: error: no matching function for call to object of type 'std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)>'
        { return bool(_M_comp(__val, *__it)); }
                      ^~~~~~~
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1861:14: note: in instantiation of function template specialization '__gnu_cxx::__ops::_Val_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> >::operator()<librealsense::frame_holder, __gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > > >' requested here
      while (__comp(__val, __next))
             ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1888:11: note: in instantiation of function template specialization 'std::__unguarded_linear_insert<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Val_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
            std::__unguarded_linear_insert(__i,
                 ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:1918:9: note: in instantiation of function template specialization 'std::__insertion_sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
          std::__insertion_sort(__first, __first + int(_S_threshold), __comp);
               ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:2004:9: note: in instantiation of function template specialization 'std::__final_insertion_sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
          std::__final_insertion_sort(__first, __last, __comp);
               ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:4751:12: note: in instantiation of function template specialization 'std::__sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, __gnu_cxx::__ops::_Iter_comp_iter<std::_CheckedCompare<(lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)> > >' requested here
      std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__CheckedCompare(__comp)));
           ^
third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:22: note: in instantiation of function template specialization 'std::sort<__gnu_cxx::__normal_iterator<librealsense::frame_holder *, std::vector<librealsense::frame_holder, std::allocator<librealsense::frame_holder> > >, (lambda at third_party/librealsense2/librealsense-2.9.0/src/sync.cpp:323:55)>' requested here
                std::sort(match.begin(), match.end(), [](frame_holder& f1, frame_holder& f2)
                     ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:213:10: note: candidate template ignored: substitution failure [with _Tp = librealsense::frame_holder]
    bool operator()(const _Tp& __x, const _Tp& __y) {
         ^
third_party/crosstool/v18/stable/toolchain/bin/../lib/gcc/x86_64-grtev4-linux-gnu/4.9.x-google/../../../../x86_64-grtev4-linux-gnu/include/c++/4.9.x-google/bits/stl_algo.h:226:10: note: candidate template ignored: substitution failure [with _Tp1 = librealsense::frame_holder, _Tp2 = librealsense::frame_holder]
    bool operator()(const _Tp1& __x, const _Tp2& __y) {
         ^
5 errors generated.
@dorodnic
Copy link
Contributor

Hi @richardroberts
Thanks for bringing this up. What version of gcc are you using? Our CI is running with gcc 5.

@richardroberts
Copy link
Author

This is using clang, and this only version info I'm able to get is that it is "4.9.x".

@RealSense-Customer-Engineering
Copy link
Collaborator

[Realsense Customer Engineering Team Comment]
@richardroberts So could you please try gcc 5 to see if the issue resolved? Thanks!

@richardroberts
Copy link
Author

Thanks for the follow-up. I don't have access to gcc 5 to test with that, but I'll let you know if the issue reoccurs with clang. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants