11d2049b53e3ae38807ac763df2212b29008549f2alabuzhev/* 21d2049b53e3ae38807ac763df2212b29008549f2alabuzhev Formatting library for C++ 31d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 41d2049b53e3ae38807ac763df2212b29008549f2alabuzhev Copyright (c) 2012 - 2016, Victor Zverovich 51d2049b53e3ae38807ac763df2212b29008549f2alabuzhev All rights reserved. 61d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 71d2049b53e3ae38807ac763df2212b29008549f2alabuzhev For the license information refer to format.h. 81d2049b53e3ae38807ac763df2212b29008549f2alabuzhev */ 91d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 101d2049b53e3ae38807ac763df2212b29008549f2alabuzhev#include "format.h" 111d2049b53e3ae38807ac763df2212b29008549f2alabuzhev#include "printf.h" 121d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 131d2049b53e3ae38807ac763df2212b29008549f2alabuzhevnamespace fmt { 141d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 151d2049b53e3ae38807ac763df2212b29008549f2alabuzhevtemplate <typename Char> 161d2049b53e3ae38807ac763df2212b29008549f2alabuzhevvoid printf(BasicWriter<Char> &w, BasicCStringRef<Char> format, ArgList args); 171d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 181d2049b53e3ae38807ac763df2212b29008549f2alabuzhevFMT_FUNC int fprintf(std::FILE *f, CStringRef format, ArgList args) { 191d2049b53e3ae38807ac763df2212b29008549f2alabuzhev MemoryWriter w; 201d2049b53e3ae38807ac763df2212b29008549f2alabuzhev printf(w, format, args); 211d2049b53e3ae38807ac763df2212b29008549f2alabuzhev std::size_t size = w.size(); 221d2049b53e3ae38807ac763df2212b29008549f2alabuzhev return std::fwrite(w.data(), 1, size, f) < size ? -1 : static_cast<int>(size); 231d2049b53e3ae38807ac763df2212b29008549f2alabuzhev} 241d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 251d2049b53e3ae38807ac763df2212b29008549f2alabuzhev#ifndef FMT_HEADER_ONLY 261d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 271d2049b53e3ae38807ac763df2212b29008549f2alabuzhevtemplate void PrintfFormatter<char>::format(CStringRef format); 281d2049b53e3ae38807ac763df2212b29008549f2alabuzhevtemplate void PrintfFormatter<wchar_t>::format(WCStringRef format); 291d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 301d2049b53e3ae38807ac763df2212b29008549f2alabuzhev#endif // FMT_HEADER_ONLY 311d2049b53e3ae38807ac763df2212b29008549f2alabuzhev 321d2049b53e3ae38807ac763df2212b29008549f2alabuzhev} // namespace fmt 33