Home | History | Annotate | Download | only in fmt
      1 /*
      2  Formatting library for C++
      3 
      4  Copyright (c) 2012 - 2016, Victor Zverovich
      5  All rights reserved.
      6 
      7  For the license information refer to format.h.
      8  */
      9 
     10 #include "format.h"
     11 #include "printf.h"
     12 
     13 namespace fmt {
     14 
     15 template <typename Char>
     16 void printf(BasicWriter<Char> &w, BasicCStringRef<Char> format, ArgList args);
     17 
     18 FMT_FUNC int fprintf(std::FILE *f, CStringRef format, ArgList args) {
     19   MemoryWriter w;
     20   printf(w, format, args);
     21   std::size_t size = w.size();
     22   return std::fwrite(w.data(), 1, size, f) < size ? -1 : static_cast<int>(size);
     23 }
     24 
     25 #ifndef FMT_HEADER_ONLY
     26 
     27 template void PrintfFormatter<char>::format(CStringRef format);
     28 template void PrintfFormatter<wchar_t>::format(WCStringRef format);
     29 
     30 #endif  // FMT_HEADER_ONLY
     31 
     32 }  // namespace fmt
     33