Merge branch 'master' of github.com:cppformat/cppformat

This commit is contained in:
vitaut 2015-12-24 06:58:05 -08:00
commit 8b0504825d
3 changed files with 26 additions and 0 deletions

View File

@ -882,6 +882,13 @@ FMT_FUNC int fmt::fprintf(std::FILE *f, CStringRef format, ArgList args) {
return std::fwrite(w.data(), 1, size, f) < size ? -1 : static_cast<int>(size); return std::fwrite(w.data(), 1, size, f) < size ? -1 : static_cast<int>(size);
} }
FMT_FUNC int fmt::fprintf(std::ostream &os, CStringRef format, ArgList args) {
MemoryWriter w;
printf(w, format, args);
os.write(w.data(), w.size());
return static_cast<int>(w.size());
}
#ifndef FMT_HEADER_ONLY #ifndef FMT_HEADER_ONLY
template struct fmt::internal::BasicData<void>; template struct fmt::internal::BasicData<void>;

View File

@ -3366,6 +3366,18 @@ FMT_VARIADIC(int, fprintf, std::FILE *, CStringRef)
*/ */
FMT_API void print(std::ostream &os, CStringRef format_str, ArgList args); FMT_API void print(std::ostream &os, CStringRef format_str, ArgList args);
FMT_VARIADIC(void, print, std::ostream &, CStringRef) FMT_VARIADIC(void, print, std::ostream &, CStringRef)
/**
\rst
Prints formatted data to the stream *os*.
**Example**::
fprintf(cerr, "Don't %s!", "panic");
\endrst
*/
FMT_API int fprintf(std::ostream &os, CStringRef format_str, ArgList args);
FMT_VARIADIC(int, fprintf, std::ostream &, CStringRef)
#endif #endif
namespace internal { namespace internal {

View File

@ -476,3 +476,10 @@ TEST(PrintfTest, PrintfError) {
TEST(PrintfTest, WideString) { TEST(PrintfTest, WideString) {
EXPECT_EQ(L"abc", fmt::sprintf(L"%s", TestWString(L"abc"))); EXPECT_EQ(L"abc", fmt::sprintf(L"%s", TestWString(L"abc")));
} }
TEST(PrintfTest, Iostream) {
std::ostringstream os;
int ret = fmt::fprintf(os, "Don't %s!", "panic");
EXPECT_EQ("Don't panic!", os.str());
EXPECT_EQ(12, ret);
}