Closed
Description
Following code example shows, that format_to and format_to_n fails to format floats while using option '='. (fmtlib version 5.0.0)
#include <fmt/format.h>
#include <array>
#include <cassert>
#include <string>
using namespace fmt;
int main() {
std::array<char, 6> buffer;
auto format = "{0:0=+6.2f}";
// passing case
assert(fmt::format(format, -3.8) == "-03.80");
// failing cases
assert(fmt::format_to(buffer.begin(), format, 3.21) == buffer.end()); // got buffer.end() -1
assert(std::string(buffer.data(), buffer.size()) == "+03.21"); // got "03.21 "
assert(fmt::format_to_n(buffer.begin(), buffer.size(), format, -1.23).size ==
buffer.size()); // got 5 instead of 6
assert(std::string(buffer.data(), buffer.size()) == "-01.23"); // got "01.23 "
}
Metadata
Metadata
Assignees
Labels
No labels