@@ -107,21 +107,20 @@ template <WriteMode write_mode> struct WriteBuffer {
107107 // this with an empty string will flush the buffer if relevant.
108108
109109 LIBC_INLINE int overflow_write (cpp::string_view new_str) {
110- #ifdef LIBC_COPT_PRINTF_RUNTIME_DISPATCH
111- if (write_mode_ == WriteMode::FILL_BUFF_AND_DROP_OVERFLOW)
110+ if constexpr (write_mode == WriteMode::RUNTIME_DISPATCH) {
111+ if (write_mode_ == WriteMode::FILL_BUFF_AND_DROP_OVERFLOW)
112+ return fill_remaining_to_buff (new_str);
113+ else if (write_mode_ == WriteMode::FLUSH_TO_STREAM)
114+ return flush_to_stream (new_str);
115+ else if (write_mode_ == WriteMode::RESIZE_AND_FILL_BUFF)
116+ return resize_and_write (new_str);
117+ } else if constexpr (write_mode == WriteMode::FILL_BUFF_AND_DROP_OVERFLOW) {
112118 return fill_remaining_to_buff (new_str);
113- else if (write_mode_ == WriteMode::FLUSH_TO_STREAM)
119+ } else if constexpr (write_mode == WriteMode::FLUSH_TO_STREAM) {
114120 return flush_to_stream (new_str);
115- else if (write_mode_ == WriteMode::RESIZE_AND_FILL_BUFF)
121+ } else if constexpr (write_mode == WriteMode::RESIZE_AND_FILL_BUFF) {
116122 return resize_and_write (new_str);
117- #else
118- if constexpr (write_mode == WriteMode::FILL_BUFF_AND_DROP_OVERFLOW)
119- return fill_remaining_to_buff (new_str);
120- else if constexpr (write_mode == WriteMode::FLUSH_TO_STREAM)
121- return flush_to_stream (new_str);
122- else if constexpr (write_mode == WriteMode::RESIZE_AND_FILL_BUFF)
123- return resize_and_write (new_str);
124- #endif
123+ }
125124 __builtin_unreachable ();
126125 }
127126};
0 commit comments