From: Samuel Just Date: Wed, 18 Sep 2019 19:17:25 +0000 (-0700) Subject: crimson/net: avoid warning about signed comparison with enum classes X-Git-Tag: v15.1.0~1487^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bb2bd5f42a558dd47519e275413d246d917b9316;p=ceph.git crimson/net: avoid warning about signed comparison with enum classes Signed-off-by: Samuel Just --- diff --git a/src/crimson/net/Interceptor.h b/src/crimson/net/Interceptor.h index 7bc07cc9b841..6bea23a39621 100644 --- a/src/crimson/net/Interceptor.h +++ b/src/crimson/net/Interceptor.h @@ -12,7 +12,7 @@ namespace ceph::net { -enum class custom_bp_t { +enum class custom_bp_t : uint8_t { BANNER_WRITE = 0, BANNER_READ, BANNER_PAYLOAD_READ, @@ -20,13 +20,14 @@ enum class custom_bp_t { SOCKET_ACCEPTED }; inline const char* get_bp_name(custom_bp_t bp) { + uint8_t index = static_cast(bp); static const char *const bp_names[] = {"BANNER_WRITE", "BANNER_READ", "BANNER_PAYLOAD_READ", "SOCKET_CONNECTING", "SOCKET_ACCEPTED"}; - assert(static_cast(bp) < std::size(bp_names)); - return bp_names[static_cast(bp)]; + assert(index < std::size(bp_names)); + return bp_names[index]; } enum class bp_type_t { diff --git a/src/crimson/net/Protocol.h b/src/crimson/net/Protocol.h index 6287d198cfdc..ea7c5d029492 100644 --- a/src/crimson/net/Protocol.h +++ b/src/crimson/net/Protocol.h @@ -76,7 +76,7 @@ class Protocol { protected: // write_state is changed with state atomically, indicating the write // behavior of the according state. - enum class write_state_t { + enum class write_state_t : uint8_t { none, delay, open, @@ -84,12 +84,13 @@ class Protocol { }; static const char* get_state_name(write_state_t state) { + uint8_t index = static_cast(state); static const char *const state_names[] = {"none", "delay", "open", "drop"}; - assert(static_cast(state) < std::size(state_names)); - return state_names[static_cast(state)]; + assert(index < std::size(state_names)); + return state_names[index]; } void set_write_state(const write_state_t& state) {