Skip to content
  • Milian Wolff's avatar
    Fix argument dependent lookup: put operators into correct namespace. · 8b7a1b87
    Milian Wolff authored
    This fixes the built with clang for me, also see the note at the end
    of the error message:
    
    In file included from /home/milian/projects/kf5/src/kde/pim/kdepim-addons/plugins/plasma/pimeventsplugin/autotests/eventdatavisitortest.cpp:20:
    In file included from /home/milian/projects/kf5/src/kde/pim/kdepim-addons/plugins/plasma/pimeventsplugin/autotests/eventdatavisitortest.h:23:
    In file included from /usr/include/qt/QtCore/QObject:1:
    In file included from /usr/include/qt/QtCore/qobject.h:47:
    In file included from /usr/include/qt/QtCore/qstring.h:49:
    In file included from /usr/include/qt/QtCore/qbytearray.h:52:
    In file included from /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/string:48:
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_function.h:387:20: error: call to function 'operator<' that is neither visible in the template definition nor found by argument-dependent lookup
          { return __x < __y; }
                       ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/predefined_ops.h:144:16: note: in instantiation of member function 'std::less<CalendarEvents::EventData>::operator()' requested here
            { return bool(_M_comp(*__it, __val)); }
                          ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_heap.h:129:42: note: in instantiation of function template specialization '__gnu_cxx::__ops::_Iter_comp_val<std::less<CalendarEvents::EventData> >::operator()<QList<CalendarEvents::EventData>::iterator, CalendarEvents::EventData>' requested here
          while (__holeIndex > __topIndex && __comp(__first + __parent, __value))
                                             ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_heap.h:230:12: note: in instantiation of function template specialization 'std::__push_heap<QList<CalendarEvents::EventData>::iterator, long long, CalendarEvents::EventData, __gnu_cxx::__ops::_Iter_comp_val<std::less<CalendarEvents::EventData> > >' requested here
          std::__push_heap(__first, __holeIndex, __topIndex,
               ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_heap.h:335:9: note: in instantiation of function template specialization 'std::__adjust_heap<QList<CalendarEvents::EventData>::iterator, long long, CalendarEvents::EventData, __gnu_cxx::__ops::_Iter_comp_iter<std::less<CalendarEvents::EventData> > >' requested here
              std::__adjust_heap(__first, __parent, __len, _GLIBCXX_MOVE(__value),
                   ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_algo.h:1669:12: note: in instantiation of function template specialization 'std::__make_heap<QList<CalendarEvents::EventData>::iterator, __gnu_cxx::__ops::_Iter_comp_iter<std::less<CalendarEvents::EventData> > >' requested here
          std::__make_heap(__first, __middle, __comp);
               ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_algo.h:1930:12: note: in instantiation of function template specialization 'std::__heap_select<QList<CalendarEvents::EventData>::iterator, __gnu_cxx::__ops::_Iter_comp_iter<std::less<CalendarEvents::EventData> > >' requested here
          std::__heap_select(__first, __middle, __last, __comp);
               ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_algo.h:1945:13: note: in instantiation of function template specialization 'std::__partial_sort<QList<CalendarEvents::EventData>::iterator, __gnu_cxx::__ops::_Iter_comp_iter<std::less<CalendarEvents::EventData> > >' requested here
                  std::__partial_sort(__first, __last, __last, __comp);
                       ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_algo.h:1965:9: note: in instantiation of function template specialization 'std::__introsort_loop<QList<CalendarEvents::EventData>::iterator, int, __gnu_cxx::__ops::_Iter_comp_iter<std::less<CalendarEvents::EventData> > >' requested here
              std::__introsort_loop(__first, __last,
                   ^
    /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.1.1/../../../../include/c++/6.1.1/bits/stl_algo.h:4746:12: note: in instantiation of function template specialization 'std::__sort<QList<CalendarEvents::EventData>::iterator, __gnu_cxx::__ops::_Iter_comp_iter<std::less<CalendarEvents::EventData> > >' requested here
          std::__sort(__first, __last, __gnu_cxx::__ops::__iter_comp_iter(__comp));
               ^
    /home/milian/projects/kf5/src/kde/pim/kdepim-addons/plugins/plasma/pimeventsplugin/autotests/eventdatavisitortest.cpp:248:10: note: in instantiation of function template specialization 'std::sort<QList<CalendarEvents::EventData>::iterator, std::less<CalendarEvents::EventData> >' requested here
        std::sort(resultValues.begin(), resultValues.end(), std::less<CalendarEvents::EventData>());
             ^
    /home/milian/projects/kf5/src/kde/pim/kdepim-addons/plugins/plasma/pimeventsplugin/autotests/testutils.h:51:6: note: 'operator<' should be declared prior to the call site or in namespace 'CalendarEvents'
    bool operator<(const CalendarEvents::EventData &lhs, const CalendarEvents::EventData &rhs)
         ^
    8b7a1b87