diff options
Diffstat (limited to 'src/lib/util/strformat.h')
-rw-r--r-- | src/lib/util/strformat.h | 88 |
1 files changed, 86 insertions, 2 deletions
diff --git a/src/lib/util/strformat.h b/src/lib/util/strformat.h index 7fb41c1d52b..abb34e80d3f 100644 --- a/src/lib/util/strformat.h +++ b/src/lib/util/strformat.h @@ -166,11 +166,13 @@ ***************************************************************************/ -#pragma once - #ifndef MAME_UTIL_STRFORMAT_H #define MAME_UTIL_STRFORMAT_H +#pragma once + +#include "vecstream.h" + #include <algorithm> #include <array> #include <cassert> @@ -1746,4 +1748,86 @@ using detail::make_format_argument_pack; using util::string_format; + +//************************************************************************** +// EXTERNAL TEMPLATE INSTANTIATIONS +//************************************************************************** + +namespace util { + +namespace detail { + +extern template class format_chars<char>; +extern template class format_chars<wchar_t>; + +extern template void format_flags::apply(std::ostream &) const; +extern template void format_flags::apply(std::wostream &) const; +extern template void format_flags::apply(std::iostream &) const; +extern template void format_flags::apply(std::wiostream &) const; +extern template void format_flags::apply(std::ostringstream &) const; +extern template void format_flags::apply(std::wostringstream &) const; +extern template void format_flags::apply(std::stringstream &) const; +extern template void format_flags::apply(std::wstringstream &) const; +extern template void format_flags::apply(ovectorstream &) const; +extern template void format_flags::apply(wovectorstream &) const; +extern template void format_flags::apply(vectorstream &) const; +extern template void format_flags::apply(wvectorstream &) const; + +extern template class format_argument<std::ostream>; +extern template class format_argument<std::wostream>; +extern template class format_argument<std::iostream>; +extern template class format_argument<std::wiostream>; +extern template class format_argument<std::ostringstream>; +extern template class format_argument<std::wostringstream>; +extern template class format_argument<std::stringstream>; +extern template class format_argument<std::wstringstream>; +extern template class format_argument<ovectorstream>; +extern template class format_argument<wovectorstream>; +extern template class format_argument<vectorstream>; +extern template class format_argument<wvectorstream>; + +extern template class format_argument_pack<std::ostream>; +extern template class format_argument_pack<std::wostream>; +extern template class format_argument_pack<std::iostream>; +extern template class format_argument_pack<std::wiostream>; +extern template class format_argument_pack<std::ostringstream>; +extern template class format_argument_pack<std::wostringstream>; +extern template class format_argument_pack<std::stringstream>; +extern template class format_argument_pack<std::wstringstream>; +extern template class format_argument_pack<ovectorstream>; +extern template class format_argument_pack<wovectorstream>; +extern template class format_argument_pack<vectorstream>; +extern template class format_argument_pack<wvectorstream>; + +extern template std::ostream::off_type stream_format(std::ostream &, format_argument_pack<std::ostream> const &); +extern template std::wostream::off_type stream_format(std::wostream &, format_argument_pack<std::wostream> const &); +extern template std::iostream::off_type stream_format(std::iostream &, format_argument_pack<std::ostream> const &); +extern template std::iostream::off_type stream_format(std::iostream &, format_argument_pack<std::iostream> const &); +extern template std::wiostream::off_type stream_format(std::wiostream &, format_argument_pack<std::wostream> const &); +extern template std::wiostream::off_type stream_format(std::wiostream &, format_argument_pack<std::wiostream> const &); +extern template std::ostringstream::off_type stream_format(std::ostringstream &, format_argument_pack<std::ostream> const &); +extern template std::ostringstream::off_type stream_format(std::ostringstream &, format_argument_pack<std::ostringstream> const &); +extern template std::wostringstream::off_type stream_format(std::wostringstream &, format_argument_pack<std::wostream> const &); +extern template std::wostringstream::off_type stream_format(std::wostringstream &, format_argument_pack<std::wostringstream> const &); +extern template std::stringstream::off_type stream_format(std::stringstream &, format_argument_pack<std::ostream> const &); +extern template std::stringstream::off_type stream_format(std::stringstream &, format_argument_pack<std::iostream> const &); +extern template std::stringstream::off_type stream_format(std::stringstream &, format_argument_pack<std::stringstream> const &); +extern template std::wstringstream::off_type stream_format(std::wstringstream &, format_argument_pack<std::wostream> const &); +extern template std::wstringstream::off_type stream_format(std::wstringstream &, format_argument_pack<std::wiostream> const &); +extern template std::wstringstream::off_type stream_format(std::wstringstream &, format_argument_pack<std::wstringstream> const &); +extern template ovectorstream::off_type stream_format(ovectorstream &, format_argument_pack<std::ostream> const &); +extern template ovectorstream::off_type stream_format(ovectorstream &, format_argument_pack<ovectorstream> const &); +extern template wovectorstream::off_type stream_format(wovectorstream &, format_argument_pack<std::wostream> const &); +extern template wovectorstream::off_type stream_format(wovectorstream &, format_argument_pack<wovectorstream> const &); +extern template vectorstream::off_type stream_format(vectorstream &, format_argument_pack<std::ostream> const &); +extern template vectorstream::off_type stream_format(vectorstream &, format_argument_pack<std::iostream> const &); +extern template vectorstream::off_type stream_format(vectorstream &, format_argument_pack<vectorstream> const &); +extern template wvectorstream::off_type stream_format(wvectorstream &, format_argument_pack<std::wostream> const &); +extern template wvectorstream::off_type stream_format(wvectorstream &, format_argument_pack<std::wiostream> const &); +extern template wvectorstream::off_type stream_format(wvectorstream &, format_argument_pack<wvectorstream> const &); + +} // namespace detail + +} // namespace util + #endif // MAME_UTIL_STRFORMAT_H |