From 75be4dff5f28a3dbca9fdfe1781adbc147d57411 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sat, 27 Aug 2016 16:45:53 +1000 Subject: While I'm causing full recompiles all the time, reduce necessary number of instantiations of parts of string formatting engine --- src/lib/util/strformat.cpp | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/lib/util/strformat.cpp (limited to 'src/lib/util/strformat.cpp') diff --git a/src/lib/util/strformat.cpp b/src/lib/util/strformat.cpp new file mode 100644 index 00000000000..b1ae7ff8875 --- /dev/null +++ b/src/lib/util/strformat.cpp @@ -0,0 +1,93 @@ +// license:BSD-3-Clause +// copyright-holders:Vas Crabb +/*************************************************************************** + + strformat.h + + type-safe printf substitutes + +***************************************************************************/ + +#include "strformat.h" +#include "vecstream.h" + +#include +#include + + +namespace util { + +namespace detail { + +template class format_chars; +template class format_chars; + +template void format_flags::apply(std::ostream &) const; +template void format_flags::apply(std::wostream &) const; +template void format_flags::apply(std::iostream &) const; +template void format_flags::apply(std::wiostream &) const; +template void format_flags::apply(std::ostringstream &) const; +template void format_flags::apply(std::wostringstream &) const; +template void format_flags::apply(std::stringstream &) const; +template void format_flags::apply(std::wstringstream &) const; +template void format_flags::apply(ovectorstream &) const; +template void format_flags::apply(wovectorstream &) const; +template void format_flags::apply(vectorstream &) const; +template void format_flags::apply(wvectorstream &) const; + +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; +template class format_argument; + +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; +template class format_argument_pack; + +template std::ostream::off_type stream_format(std::ostream &, format_argument_pack const &); +template std::wostream::off_type stream_format(std::wostream &, format_argument_pack const &); +template std::iostream::off_type stream_format(std::iostream &, format_argument_pack const &); +template std::iostream::off_type stream_format(std::iostream &, format_argument_pack const &); +template std::wiostream::off_type stream_format(std::wiostream &, format_argument_pack const &); +template std::wiostream::off_type stream_format(std::wiostream &, format_argument_pack const &); +template std::ostringstream::off_type stream_format(std::ostringstream &, format_argument_pack const &); +template std::ostringstream::off_type stream_format(std::ostringstream &, format_argument_pack const &); +template std::wostringstream::off_type stream_format(std::wostringstream &, format_argument_pack const &); +template std::wostringstream::off_type stream_format(std::wostringstream &, format_argument_pack const &); +template std::stringstream::off_type stream_format(std::stringstream &, format_argument_pack const &); +template std::stringstream::off_type stream_format(std::stringstream &, format_argument_pack const &); +template std::stringstream::off_type stream_format(std::stringstream &, format_argument_pack const &); +template std::wstringstream::off_type stream_format(std::wstringstream &, format_argument_pack const &); +template std::wstringstream::off_type stream_format(std::wstringstream &, format_argument_pack const &); +template std::wstringstream::off_type stream_format(std::wstringstream &, format_argument_pack const &); +template ovectorstream::off_type stream_format(ovectorstream &, format_argument_pack const &); +template ovectorstream::off_type stream_format(ovectorstream &, format_argument_pack const &); +template wovectorstream::off_type stream_format(wovectorstream &, format_argument_pack const &); +template wovectorstream::off_type stream_format(wovectorstream &, format_argument_pack const &); +template vectorstream::off_type stream_format(vectorstream &, format_argument_pack const &); +template vectorstream::off_type stream_format(vectorstream &, format_argument_pack const &); +template vectorstream::off_type stream_format(vectorstream &, format_argument_pack const &); +template wvectorstream::off_type stream_format(wvectorstream &, format_argument_pack const &); +template wvectorstream::off_type stream_format(wvectorstream &, format_argument_pack const &); +template wvectorstream::off_type stream_format(wvectorstream &, format_argument_pack const &); + +} // namespace detail + +} // namespace util -- cgit v1.2.3-70-g09d2