@@ -122,14 +122,30 @@ inline constexpr char_type const *write_some_overflow_impl(optstmtype optstm,
122122}
123123
124124template <::std::integral char_type, typename optstmtype>
125- inline constexpr void write_all_nullptr_case (basic_io_buffer_pointers<char_type> &__restrict pointers,
125+ inline constexpr void write_all_nullptr_case (optstmtype optstm, basic_io_buffer_pointers<char_type> &__restrict pointers,
126126 char_type const *first, char_type const *last)
127127{
128- basic_io_scatter_t <char_type> const scatters[2 ]{
129- {(pointers.buffer_begin ? pointers.buffer_begin : first),
130- static_cast <::std::size_t >(pointers.buffer_curr - pointers.buffer_begin )},
131- {first, static_cast <::std::size_t >(last - first)}};
132- ::fast_io::operations::decay::scatter_write_all_decay (pointers, scatters, 2 );
128+ if constexpr (::fast_io::operations::decay::defines::has_any_of_write_bytes_operations<optstmtype>)
129+ {
130+ io_scatter_t const scatters[2 ]{
131+ {reinterpret_cast <::std::byte const *>(pointers.buffer_begin ? pointers.buffer_begin : first),
132+ static_cast <::std::size_t >(pointers.buffer_begin
133+ ? (reinterpret_cast <::std::byte const *>(pointers.buffer_curr ) -
134+ reinterpret_cast <::std::byte const *>(pointers.buffer_begin ))
135+ : 0u )},
136+ {reinterpret_cast <::std::byte const *>(first),
137+ static_cast <::std::size_t >(reinterpret_cast <::std::byte const *>(last) -
138+ reinterpret_cast <::std::byte const *>(first))}};
139+ ::fast_io::operations::decay::scatter_write_all_bytes_decay (optstm, scatters, 2 );
140+ }
141+ else
142+ {
143+ basic_io_scatter_t <char_type> const scatters[2 ]{
144+ {(pointers.buffer_begin ? pointers.buffer_begin : first),
145+ static_cast <::std::size_t >(pointers.buffer_begin ? (pointers.buffer_curr - pointers.buffer_begin ) : 0u )},
146+ {first, static_cast <::std::size_t >(last - first)}};
147+ ::fast_io::operations::decay::scatter_write_all_decay (optstm, scatters, 2 );
148+ }
133149 pointers.buffer_curr = pointers.buffer_begin ;
134150}
135151
0 commit comments