diff --git a/example/plugins/cpp-api/boom/boom.cc b/example/plugins/cpp-api/boom/boom.cc index a312e7f2043..7a3a3234d66 100644 --- a/example/plugins/cpp-api/boom/boom.cc +++ b/example/plugins/cpp-api/boom/boom.cc @@ -98,13 +98,16 @@ GlobalPlugin *plugin; // Functor that decides whether the HTTP error can be rewritten or not. // Rewritable codes are: 2xx, 3xx, 4xx, 5xx and 6xx. // 1xx is NOT rewritable! -class IsRewritableCode : public std::unary_function +class IsRewritableCode { // could probably be replaced with mem_ptr_fun().. private: int current_code_; std::string current_code_string_; public: + using argument_type = std::string; + using result_type = bool; + explicit IsRewritableCode(int current_code) : current_code_(current_code) { std::ostringstream oss; diff --git a/include/tscore/IntrusivePtr.h b/include/tscore/IntrusivePtr.h index bfe63a3aee0..70cc671e394 100644 --- a/include/tscore/IntrusivePtr.h +++ b/include/tscore/IntrusivePtr.h @@ -330,9 +330,13 @@ template class IntrusivePtrDefaultPolicy static void finalize(T *t); /// Strict weak order for STL containers. - class Order : public std::binary_function, IntrusivePtr, bool> + class Order { public: + using first_argument_type = IntrusivePtr; + using second_argument_type = IntrusivePtr; + using result_type = bool; + /// Default constructor. Order() {} /// Compare by raw pointer. diff --git a/include/tscpp/api/Headers.h b/include/tscpp/api/Headers.h index 9e6daea8ef4..ffaffde81b5 100644 --- a/include/tscpp/api/Headers.h +++ b/include/tscpp/api/Headers.h @@ -109,12 +109,15 @@ class HeaderField; /** * @brief A header field value iterator iterates through all header fields. */ -class header_field_value_iterator : public std::iterator +class header_field_value_iterator { private: HeaderFieldValueIteratorState *state_; public: + using iterator_category = std::forward_iterator_tag; + using value_type = int; + /** * Constructor for header_field_value_iterator, this shouldn't need to be used directly. * @param bufp the TSMBuffer associated with the headers @@ -169,13 +172,16 @@ class header_field_value_iterator : public std::iterator +class header_field_iterator { private: HeaderFieldIteratorState *state_; header_field_iterator(void *hdr_buf, void *hdr_loc, void *field_loc); public: + using iterator_category = std::forward_iterator_tag; + using value_type = int; + ~header_field_iterator(); /** diff --git a/iocore/net/quic/QUICFrame.h b/iocore/net/quic/QUICFrame.h index 93cd692fc7c..a0b4af9077d 100644 --- a/iocore/net/quic/QUICFrame.h +++ b/iocore/net/quic/QUICFrame.h @@ -204,9 +204,12 @@ class QUICAckFrame : public QUICFrame class AckBlockSection { public: - class const_iterator : public std::iterator + class const_iterator { public: + using iterator_category = std::input_iterator_tag; + using value_type = QUICAckFrame::AckBlock; + const_iterator(uint8_t index, const std::vector *ack_blocks); const QUICAckFrame::AckBlock & diff --git a/iocore/net/quic/QUICVersionNegotiator.cc b/iocore/net/quic/QUICVersionNegotiator.cc index 43d2fbf5631..d26f4f88327 100644 --- a/iocore/net/quic/QUICVersionNegotiator.cc +++ b/iocore/net/quic/QUICVersionNegotiator.cc @@ -46,11 +46,9 @@ QUICVersionNegotiator::negotiate(const QUICPacket &packet) case QUICPacketType::VERSION_NEGOTIATION: { const QUICVersionNegotiationPacketR &vn_packet = static_cast(packet); uint16_t n_supported_version = vn_packet.nversions(); - uint16_t len = 0; for (int i = 0; i < n_supported_version; ++i) { QUICVersion version = vn_packet.supported_version(i); - len += sizeof(QUICVersion); if (QUICTypeUtil::is_supported_version(version)) { this->_status = QUICVersionNegotiationStatus::NEGOTIATED; diff --git a/src/tscore/HostLookup.cc b/src/tscore/HostLookup.cc index b695e0f47d1..440474e9456 100644 --- a/src/tscore/HostLookup.cc +++ b/src/tscore/HostLookup.cc @@ -231,7 +231,11 @@ struct CharIndexBlock { class CharIndex { public: - struct iterator : public std::iterator { + struct iterator { + using iterator_category = std::forward_iterator_tag; + using value_type = HostBranch; + using difference_type = int; + using self_type = iterator; struct State { diff --git a/src/wccp/WccpMeta.h b/src/wccp/WccpMeta.h index 464e8bafcea..11a9b09cf44 100644 --- a/src/wccp/WccpMeta.h +++ b/src/wccp/WccpMeta.h @@ -54,7 +54,11 @@ template struct TEST_IF_TRUE : public TEST_RESULT> }; // Helper for assigning a value to all instances in a container. -template struct TsAssignMember : public std::binary_function { +template struct TsAssignMember { + using first_argument_type = T; + using second_argument_type = A1; + using result_type = R; + R T::*_m; A1 _arg1; TsAssignMember(R T::*m, A1 const &arg1) : _m(m), _arg1(arg1) {}