@@ -107,21 +107,20 @@ template <WriteMode write_mode> struct WriteBuffer {
107
107
// this with an empty string will flush the buffer if relevant.
108
108
109
109
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) {
112
118
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) {
114
120
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) {
116
122
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
+ }
125
124
__builtin_unreachable ();
126
125
}
127
126
};
0 commit comments