qt: Fix comparison function signature #17634

pull hebasto wants to merge 2 commits into bitcoin:master from hebasto:20191129-fix-comp changing 8 files +11 −11
  1. hebasto commented at 7:37 PM on November 29, 2019: member

    This PR fixes build on CentOS 7 with GCC 4.8.5:

    ...
    In file included from /usr/include/c++/4.8.2/algorithm:62:0,
                     from ./serialize.h:11,
                     from ./qt/sendcoinsrecipient.h:13,
                     from ./qt/recentrequeststablemodel.h:8,
                     from qt/recentrequeststablemodel.cpp:5:
    /usr/include/c++/4.8.2/bits/stl_algo.h: In instantiation of ‘_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, _Compare) [with _RandomAccessIterator = QList<RecentRequestEntry>::iterator; _Tp = RecentRequestEntry; _Compare = RecentRequestEntryLessThan]’:
    /usr/include/c++/4.8.2/bits/stl_algo.h:2296:78:   required from ‘_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = QList<RecentRequestEntry>::iterator; _Compare = RecentRequestEntryLessThan]’
    /usr/include/c++/4.8.2/bits/stl_algo.h:2337:62:   required from ‘void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = QList<RecentRequestEntry>::iterator; _Size = int; _Compare = RecentRequestEntryLessThan]’
    /usr/include/c++/4.8.2/bits/stl_algo.h:5499:44:   required from ‘void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = QList<RecentRequestEntry>::iterator; _Compare = RecentRequestEntryLessThan]’
    qt/recentrequeststablemodel.cpp:208:82:   required from here
    /usr/include/c++/4.8.2/bits/stl_algo.h:2263:35: error: no match for call to ‘(RecentRequestEntryLessThan) (RecentRequestEntry&, const RecentRequestEntry&)’
        while (__comp(*__first, __pivot))
                                       ^
    In file included from qt/recentrequeststablemodel.cpp:5:0:
    ./qt/recentrequeststablemodel.h:43:7: note: candidate is:
     class RecentRequestEntryLessThan
           ^
    qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
     bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
          ^
    qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 2 from ‘const RecentRequestEntry’ to ‘RecentRequestEntry&’
    In file included from /usr/include/c++/4.8.2/algorithm:62:0,
                     from ./serialize.h:11,
                     from ./qt/sendcoinsrecipient.h:13,
                     from ./qt/recentrequeststablemodel.h:8,
                     from qt/recentrequeststablemodel.cpp:5:
    /usr/include/c++/4.8.2/bits/stl_algo.h:2266:34: error: no match for call to ‘(RecentRequestEntryLessThan) (const RecentRequestEntry&, RecentRequestEntry&)’
        while (__comp(__pivot, *__last))
                                      ^
    In file included from qt/recentrequeststablemodel.cpp:5:0:
    ./qt/recentrequeststablemodel.h:43:7: note: candidate is:
     class RecentRequestEntryLessThan
           ^
    qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
     bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
          ^
    qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 1 from ‘const RecentRequestEntry’ to ‘RecentRequestEntry&’
      CXX      qt/qt_libbitcoinqt_a-sendcoinsentry.o
    make[2]: *** [qt/qt_libbitcoinqt_a-recentrequeststablemodel.o] Error 1
    

    Also for std::swap() header <algorithm> is replaced with <utility> one. Refs:

  2. Fix comparison function signature
    This commit fixes build on CentOS 7 with GCC 4.8.5
    b66861e2e5
  3. Use correct C++11 header for std::swap() 98fbd1cdff
  4. DrahtBot added the label GUI on Nov 29, 2019
  5. DrahtBot added the label Tests on Nov 29, 2019
  6. DrahtBot added the label Validation on Nov 29, 2019
  7. fanquake removed the label Tests on Nov 29, 2019
  8. fanquake removed the label Validation on Nov 29, 2019
  9. hebasto cross-referenced this on Nov 29, 2019 from issue ci: Add CentOS 7 build by hebasto
  10. paymog commented at 8:57 AM on November 30, 2019: none

    Does bitcoin only support C++11 and newer? If so, LGTM.

  11. hebasto commented at 9:00 AM on November 30, 2019: member

    Does bitcoin only support C++11 and newer?

    See #7165.

  12. paymog approved
  13. paymog commented at 9:06 AM on November 30, 2019: none

    ACK

  14. jonasschnelli commented at 9:00 PM on December 1, 2019: contributor

    utACK 98fbd1cdffaa69357091cc67e959ac21119dfa16

  15. promag commented at 9:14 PM on December 1, 2019: member

    Code review ACK 98fbd1cdffaa69357091cc67e959ac21119dfa16.

  16. fanquake approved
  17. fanquake commented at 4:22 PM on December 2, 2019: member

    ACK 98fbd1cdffaa69357091cc67e959ac21119dfa16

    Tested that this fixes the build in a CentOS 7 Docker container. Master (19698ac6bc0e6c75a92b02c8b74ae1fa51c34e08) fails with:

      CXX      qt/qt_libbitcoinqt_a-recentrequeststablemodel.o
    In file included from /usr/include/c++/4.8.2/algorithm:62:0,
                     from ./serialize.h:11,
                     from ./qt/sendcoinsrecipient.h:13,
                     from ./qt/recentrequeststablemodel.h:8,
                     from qt/recentrequeststablemodel.cpp:5:
    /usr/include/c++/4.8.2/bits/stl_algo.h: In instantiation of '_RandomAccessIterator std::__unguarded_partition(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, _Compare) [with _RandomAccessIterator = QList<RecentRequestEntry>::iterator; _Tp = RecentRequestEntry; _Compare = RecentRequestEntryLessThan]':
    /usr/include/c++/4.8.2/bits/stl_algo.h:2296:78:   required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = QList<RecentRequestEntry>::iterator; _Compare = RecentRequestEntryLessThan]'
    /usr/include/c++/4.8.2/bits/stl_algo.h:2337:62:   required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = QList<RecentRequestEntry>::iterator; _Size = int; _Compare = RecentRequestEntryLessThan]'
    /usr/include/c++/4.8.2/bits/stl_algo.h:5499:44:   required from 'void std::sort(_RAIter, _RAIter, _Compare) [with _RAIter = QList<RecentRequestEntry>::iterator; _Compare = RecentRequestEntryLessThan]'
    qt/recentrequeststablemodel.cpp:208:82:   required from here
    /usr/include/c++/4.8.2/bits/stl_algo.h:2263:35: error: no match for call to '(RecentRequestEntryLessThan) (RecentRequestEntry&, const RecentRequestEntry&)'
        while (__comp(*__first, __pivot))
                                       ^
    In file included from qt/recentrequeststablemodel.cpp:5:0:
    ./qt/recentrequeststablemodel.h:43:7: note: candidate is:
     class RecentRequestEntryLessThan
           ^
    qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
     bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
          ^
    qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 2 from 'const RecentRequestEntry' to 'RecentRequestEntry&'
    In file included from /usr/include/c++/4.8.2/algorithm:62:0,
                     from ./serialize.h:11,
                     from ./qt/sendcoinsrecipient.h:13,
                     from ./qt/recentrequeststablemodel.h:8,
                     from qt/recentrequeststablemodel.cpp:5:
    /usr/include/c++/4.8.2/bits/stl_algo.h:2266:34: error: no match for call to '(RecentRequestEntryLessThan) (const RecentRequestEntry&, RecentRequestEntry&)'
        while (__comp(__pivot, *__last))
                                      ^
    In file included from qt/recentrequeststablemodel.cpp:5:0:
    ./qt/recentrequeststablemodel.h:43:7: note: candidate is:
     class RecentRequestEntryLessThan
           ^
    qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
     bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
          ^
    qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 1 from 'const RecentRequestEntry' to 'RecentRequestEntry&'
    make[2]: *** [qt/qt_libbitcoinqt_a-recentrequeststablemodel.o] Error 1
    

    std::swap was defined in the <algorithm> header until C++11, and has been defined in <utility> since.

  18. fanquake referenced this in commit 35eda631ed on Dec 2, 2019
  19. fanquake merged this on Dec 2, 2019
  20. fanquake closed this on Dec 2, 2019

  21. hebasto deleted the branch on Dec 2, 2019
  22. sidhujag referenced this in commit cb27d9d61e on Dec 2, 2019
  23. MarcoFalke referenced this in commit fc0da027e8 on Dec 7, 2019
  24. sidhujag referenced this in commit 0bfc992d17 on Dec 7, 2019
  25. hebasto commented at 9:33 AM on January 15, 2020: member

    @fanquake @MarcoFalke Backport to 0.19 ?

  26. fanquake added the label Needs backport (0.19) on Jan 15, 2020
  27. promag referenced this in commit b8101fb7ac on Jan 15, 2020
  28. promag referenced this in commit cd67b1dcb8 on Jan 15, 2020
  29. promag cross-referenced this on Jan 15, 2020 from issue 0.19: Backports by promag
  30. fanquake commented at 12:14 PM on January 15, 2020: member

    Being backported as part of 17792.

  31. fanquake removed the label Needs backport (0.19) on Jan 15, 2020
  32. laanwj referenced this in commit 98159132c3 on Jan 20, 2020
  33. MarkLTZ referenced this in commit d99bc96496 on Feb 13, 2020
  34. MarkLTZ cross-referenced this on Apr 4, 2020 from issue Bitcoin PR tracking by MarkLTZ
  35. deadalnix referenced this in commit ff91efd793 on Nov 5, 2020
  36. sidhujag referenced this in commit 36595ef562 on Nov 10, 2020
  37. sidhujag referenced this in commit 352aa1f19d on Nov 10, 2020
  38. str4d cross-referenced this on Apr 20, 2021 from issue Replace SigCache implementation with CuckooCache by str4d
  39. zkbot referenced this in commit bb6e5fad4c on Apr 20, 2021
  40. bitcoin locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-20 06:54 UTC