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:

     0...
     1In file included from /usr/include/c++/4.8.2/algorithm:62:0,
     2                 from ./serialize.h:11,
     3                 from ./qt/sendcoinsrecipient.h:13,
     4                 from ./qt/recentrequeststablemodel.h:8,
     5                 from qt/recentrequeststablemodel.cpp:5:
     6/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]:
     7/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]
     8/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]
     9/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]
    10qt/recentrequeststablemodel.cpp:208:82:   required from here
    11/usr/include/c++/4.8.2/bits/stl_algo.h:2263:35: error: no match for call to (RecentRequestEntryLessThan) (RecentRequestEntry&, const RecentRequestEntry&)
    12    while (__comp(*__first, __pivot))
    13                                   ^
    14In file included from qt/recentrequeststablemodel.cpp:5:0:
    15./qt/recentrequeststablemodel.h:43:7: note: candidate is:
    16 class RecentRequestEntryLessThan
    17       ^
    18qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
    19 bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
    20      ^
    21qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 2 from const RecentRequestEntry to RecentRequestEntry&
    22In file included from /usr/include/c++/4.8.2/algorithm:62:0,
    23                 from ./serialize.h:11,
    24                 from ./qt/sendcoinsrecipient.h:13,
    25                 from ./qt/recentrequeststablemodel.h:8,
    26                 from qt/recentrequeststablemodel.cpp:5:
    27/usr/include/c++/4.8.2/bits/stl_algo.h:2266:34: error: no match for call to (RecentRequestEntryLessThan) (const RecentRequestEntry&, RecentRequestEntry&)
    28    while (__comp(__pivot, *__last))
    29                                  ^
    30In file included from qt/recentrequeststablemodel.cpp:5:0:
    31./qt/recentrequeststablemodel.h:43:7: note: candidate is:
    32 class RecentRequestEntryLessThan
    33       ^
    34qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
    35 bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
    36      ^
    37qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 1 from const RecentRequestEntry to RecentRequestEntry&
    38  CXX      qt/qt_libbitcoinqt_a-sendcoinsentry.o
    39make[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. paymog commented at 8:57 am on November 30, 2019: none
    Does bitcoin only support C++11 and newer? If so, LGTM.
  10. hebasto commented at 9:00 am on November 30, 2019: member

    Does bitcoin only support C++11 and newer?

    See #7165.

  11. paymog approved
  12. paymog commented at 9:06 am on November 30, 2019: none
    ACK
  13. jonasschnelli commented at 9:00 pm on December 1, 2019: contributor
    utACK 98fbd1cdffaa69357091cc67e959ac21119dfa16
  14. promag commented at 9:14 pm on December 1, 2019: member
    Code review ACK 98fbd1cdffaa69357091cc67e959ac21119dfa16.
  15. fanquake approved
  16. 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:

     0  CXX      qt/qt_libbitcoinqt_a-recentrequeststablemodel.o
     1In file included from /usr/include/c++/4.8.2/algorithm:62:0,
     2                 from ./serialize.h:11,
     3                 from ./qt/sendcoinsrecipient.h:13,
     4                 from ./qt/recentrequeststablemodel.h:8,
     5                 from qt/recentrequeststablemodel.cpp:5:
     6/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]':
     7/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]'
     8/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]'
     9/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]'
    10qt/recentrequeststablemodel.cpp:208:82:   required from here
    11/usr/include/c++/4.8.2/bits/stl_algo.h:2263:35: error: no match for call to '(RecentRequestEntryLessThan) (RecentRequestEntry&, const RecentRequestEntry&)'
    12    while (__comp(*__first, __pivot))
    13                                   ^
    14In file included from qt/recentrequeststablemodel.cpp:5:0:
    15./qt/recentrequeststablemodel.h:43:7: note: candidate is:
    16 class RecentRequestEntryLessThan
    17       ^
    18qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
    19 bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
    20      ^
    21qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 2 from 'const RecentRequestEntry' to 'RecentRequestEntry&'
    22In file included from /usr/include/c++/4.8.2/algorithm:62:0,
    23                 from ./serialize.h:11,
    24                 from ./qt/sendcoinsrecipient.h:13,
    25                 from ./qt/recentrequeststablemodel.h:8,
    26                 from qt/recentrequeststablemodel.cpp:5:
    27/usr/include/c++/4.8.2/bits/stl_algo.h:2266:34: error: no match for call to '(RecentRequestEntryLessThan) (const RecentRequestEntry&, RecentRequestEntry&)'
    28    while (__comp(__pivot, *__last))
    29                                  ^
    30In file included from qt/recentrequeststablemodel.cpp:5:0:
    31./qt/recentrequeststablemodel.h:43:7: note: candidate is:
    32 class RecentRequestEntryLessThan
    33       ^
    34qt/recentrequeststablemodel.cpp:217:6: note: bool RecentRequestEntryLessThan::operator()(RecentRequestEntry&, RecentRequestEntry&) const
    35 bool RecentRequestEntryLessThan::operator()(RecentRequestEntry &left, RecentRequestEntry &right) const
    36      ^
    37qt/recentrequeststablemodel.cpp:217:6: note:   no known conversion for argument 1 from 'const RecentRequestEntry' to 'RecentRequestEntry&'
    38make[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.

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

  20. hebasto deleted the branch on Dec 2, 2019
  21. sidhujag referenced this in commit cb27d9d61e on Dec 2, 2019
  22. MarcoFalke referenced this in commit fc0da027e8 on Dec 7, 2019
  23. sidhujag referenced this in commit 0bfc992d17 on Dec 7, 2019
  24. hebasto commented at 9:33 am on January 15, 2020: member
    @fanquake @MarcoFalke Backport to 0.19 ?
  25. fanquake added the label Needs backport (0.19) on Jan 15, 2020
  26. promag referenced this in commit b8101fb7ac on Jan 15, 2020
  27. promag referenced this in commit cd67b1dcb8 on Jan 15, 2020
  28. fanquake commented at 12:14 pm on January 15, 2020: member
    Being backported as part of 17792.
  29. fanquake removed the label Needs backport (0.19) on Jan 15, 2020
  30. laanwj referenced this in commit 98159132c3 on Jan 20, 2020
  31. MarkLTZ referenced this in commit d99bc96496 on Feb 13, 2020
  32. deadalnix referenced this in commit ff91efd793 on Nov 5, 2020
  33. sidhujag referenced this in commit 36595ef562 on Nov 10, 2020
  34. sidhujag referenced this in commit 352aa1f19d on Nov 10, 2020
  35. zkbot referenced this in commit bb6e5fad4c on Apr 20, 2021
  36. DrahtBot 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: 2025-09-26 18:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me