diff options
author | 2020-12-20 15:28:27 +1100 | |
---|---|---|
committer | 2020-12-20 15:28:27 +1100 | |
commit | ed872d1bd2a8c50086c1fe4f97420a065f249eb1 (patch) | |
tree | 2f1edc26b22ac9f9e30bd218600161d9529e6b69 /src | |
parent | 25294ce9cdd4dde807f931fc2e28046db3b4ad39 (diff) |
Fix some oversights and emergent behaviour with view selection.
Exposed the "native snapview" option on the video manager. Trying to
use presence of a single view is a poor proxy that breaks with
multi-screen systems.
Allow rotation to be changed for native snapshot views, and disable the
zoom to screen area control when it has no effect on the selected view.
Treat an empty string identically to "auto" for view selectction.
Previously this was being used for prefix matching so it would force the
first view. (This caused the bad snapshot view selection. It had been
relying on "internal" not being a common view name prefix so it fell
through to automatic selection, but when changed to an empty string it
forced the first view.)
Documented "auto" as well as "native" for the -snapview option and
changed the default to auto rather than an empty string for consistency
with the -viewN options.
Added [w]string_view handlers to the stuff that's instantiated in
strformat.cpp since we'll be increasingly using them.
Cleaned up and updated some documentation.
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/emuopts.cpp | 2 | ||||
-rw-r--r-- | src/emu/render.cpp | 6 | ||||
-rw-r--r-- | src/emu/video.cpp | 6 | ||||
-rw-r--r-- | src/emu/video.h | 1 | ||||
-rw-r--r-- | src/frontend/mame/ui/filemngr.cpp | 21 | ||||
-rw-r--r-- | src/frontend/mame/ui/filesel.cpp | 6 | ||||
-rw-r--r-- | src/frontend/mame/ui/mainmenu.cpp | 2 | ||||
-rw-r--r-- | src/frontend/mame/ui/menu.cpp | 1 | ||||
-rw-r--r-- | src/frontend/mame/ui/videoopt.cpp | 31 | ||||
-rw-r--r-- | src/lib/util/strformat.cpp | 36 | ||||
-rw-r--r-- | src/lib/util/strformat.h | 36 |
11 files changed, 114 insertions, 34 deletions
diff --git a/src/emu/emuopts.cpp b/src/emu/emuopts.cpp index 9885b42b880..690756a7011 100644 --- a/src/emu/emuopts.cpp +++ b/src/emu/emuopts.cpp @@ -74,7 +74,7 @@ const options_entry emu_options::s_option_entries[] = { OPTION_WAVWRITE, nullptr, OPTION_STRING, "optional filename to write a WAV file of the current session" }, { OPTION_SNAPNAME, "%g/%i", OPTION_STRING, "override of the default snapshot/movie naming; %g == gamename, %i == index" }, { OPTION_SNAPSIZE, "auto", OPTION_STRING, "specify snapshot/movie resolution (<width>x<height>) or 'auto' to use minimal size " }, - { OPTION_SNAPVIEW, "", OPTION_STRING, "specify snapshot/movie view or 'native' to use internal pixel-aspect views" }, + { OPTION_SNAPVIEW, "auto", OPTION_STRING, "snapshot/movie view - 'auto' for default, or 'native' for per-screen pixel-aspect views" }, { OPTION_SNAPBILINEAR, "1", OPTION_BOOLEAN, "specify if the snapshot/movie should have bilinear filtering applied" }, { OPTION_STATENAME, "%g", OPTION_STRING, "override of the default state subfolder naming; %g == gamename" }, { OPTION_BURNIN, "0", OPTION_BOOLEAN, "create burn-in snapshots for each screen" }, diff --git a/src/emu/render.cpp b/src/emu/render.cpp index 6b9a1e76f18..68c840f89a6 100644 --- a/src/emu/render.cpp +++ b/src/emu/render.cpp @@ -1061,8 +1061,8 @@ unsigned render_target::configured_view(const char *viewname, int targetindex, i { layout_view *view = nullptr; - // auto view just selects the nth view - if (strcmp(viewname, "auto") != 0) + // if it isn't "auto" or an empty string, try to match it as a view name prefix + if (viewname && *viewname && strcmp(viewname, "auto")) { // scan for a matching view name size_t const viewlen = strlen(viewname); @@ -3315,7 +3315,7 @@ void render_manager::config_load(config_type cfg_type, util::xml::data_node cons for (util::xml::data_node const *targetnode = parentnode->get_child("target"); targetnode; targetnode = targetnode->get_next_sibling("target")) { render_target *const target = target_by_index(targetnode->get_attribute_int("index", -1)); - if (target) + if (target && !target->hidden()) target->config_load(*targetnode); } diff --git a/src/emu/video.cpp b/src/emu/video.cpp index 3d6ffa43dea..a9599fb4964 100644 --- a/src/emu/video.cpp +++ b/src/emu/video.cpp @@ -349,10 +349,9 @@ void video_manager::save_snapshot(screen_device *screen, emu_file &file) void video_manager::save_active_screen_snapshots() { - // if we're native, then write one snapshot per visible screen if (m_snap_native) { - // write one snapshot per visible screen + // if we're native, then write one snapshot per visible screen for (screen_device &screen : screen_device_enumerator(machine().root_device())) if (machine().render().is_live(screen)) { @@ -362,10 +361,9 @@ void video_manager::save_active_screen_snapshots() save_snapshot(&screen, file); } } - - // otherwise, just write a single snapshot else { + // otherwise, just write a single snapshot emu_file file(machine().options().snapshot_directory(), OPEN_FLAG_WRITE | OPEN_FLAG_CREATE | OPEN_FLAG_CREATE_PATHS); osd_file::error filerr = open_next(file, "png"); if (filerr == osd_file::error::NONE) diff --git a/src/emu/video.h b/src/emu/video.h index bcd0d4e4394..84654ed01ff 100644 --- a/src/emu/video.h +++ b/src/emu/video.h @@ -75,6 +75,7 @@ public: int effective_frameskip() const; // snapshots + bool snap_native() const { return m_snap_native; } render_target &snapshot_target() { return *m_snap_target; } void save_snapshot(screen_device *screen, emu_file &file); void save_active_screen_snapshots(); diff --git a/src/frontend/mame/ui/filemngr.cpp b/src/frontend/mame/ui/filemngr.cpp index 69a3b5ca5fa..1ef861e5475 100644 --- a/src/frontend/mame/ui/filemngr.cpp +++ b/src/frontend/mame/ui/filemngr.cpp @@ -12,17 +12,19 @@ *********************************************************************/ #include "emu.h" -#include "ui/ui.h" -#include "ui/menu.h" #include "ui/filemngr.h" + #include "ui/filesel.h" -#include "ui/miscmenu.h" -#include "ui/imgcntrl.h" #include "ui/floppycntrl.h" +#include "ui/imgcntrl.h" +#include "ui/miscmenu.h" +#include "ui/ui.h" + #include "softlist.h" namespace ui { + /*************************************************************************** FILE MANAGER ***************************************************************************/ @@ -168,7 +170,7 @@ void menu_file_manager::handle() { // process the menu const event *event = process(0); - if (event != nullptr && event->itemref != nullptr && event->iptkey == IPT_UI_SELECT) + if (event && event->itemref && (event->iptkey == IPT_UI_SELECT)) { if ((uintptr_t)event->itemref == 1) { @@ -177,18 +179,15 @@ void menu_file_manager::handle() else { selected_device = (device_image_interface *) event->itemref; - if (selected_device != nullptr) + if (selected_device) { m_curr_selected = true; floppy_image_device *floppy_device = dynamic_cast<floppy_image_device *>(selected_device); - if (floppy_device != nullptr) - { + if (floppy_device) menu::stack_push<menu_control_floppy_image>(ui(), container(), *floppy_device); - } else - { menu::stack_push<menu_control_device_image>(ui(), container(), *selected_device); - } + // reset the existing menu reset(reset_options::REMEMBER_POSITION); } diff --git a/src/frontend/mame/ui/filesel.cpp b/src/frontend/mame/ui/filesel.cpp index 376202cb1c8..0c38129ed9f 100644 --- a/src/frontend/mame/ui/filesel.cpp +++ b/src/frontend/mame/ui/filesel.cpp @@ -12,8 +12,8 @@ ***************************************************************************/ #include "emu.h" - #include "ui/filesel.h" + #include "ui/ui.h" #include "ui/utils.h" @@ -24,7 +24,9 @@ #include <cstring> #include <locale> + namespace ui { + /*************************************************************************** CONSTANTS ***************************************************************************/ @@ -310,8 +312,8 @@ void menu_file_selector::select_item(const file_selector_entry &entry) case SELECTOR_ENTRY_TYPE_DRIVE: case SELECTOR_ENTRY_TYPE_DIRECTORY: - // drive/directory - first check the path { + // drive/directory - first check the path util::zippath_directory::ptr dir; osd_file::error const err = util::zippath_directory::open(entry.fullpath, dir); if (err != osd_file::error::NONE) diff --git a/src/frontend/mame/ui/mainmenu.cpp b/src/frontend/mame/ui/mainmenu.cpp index 1051b322d99..9fb66331249 100644 --- a/src/frontend/mame/ui/mainmenu.cpp +++ b/src/frontend/mame/ui/mainmenu.cpp @@ -114,7 +114,7 @@ void menu_main::populate(float &customtop, float &custombottom) item_append(_("Slider Controls"), 0, (void *)SLIDERS); - item_append(_("Video Options"), 0, (machine().render().target_by_index(1) || machine().video().snapshot_target().view_name(1)) ? (void *)VIDEO_TARGETS : (void *)VIDEO_OPTIONS); + item_append(_("Video Options"), 0, (void *)VIDEO_TARGETS); if (machine().crosshair().get_usage()) item_append(_("Crosshair Options"), 0, (void *)CROSSHAIR); diff --git a/src/frontend/mame/ui/menu.cpp b/src/frontend/mame/ui/menu.cpp index 4fb9616c355..76930eda029 100644 --- a/src/frontend/mame/ui/menu.cpp +++ b/src/frontend/mame/ui/menu.cpp @@ -9,7 +9,6 @@ *********************************************************************/ #include "emu.h" - #include "ui/menu.h" #include "ui/ui.h" diff --git a/src/frontend/mame/ui/videoopt.cpp b/src/frontend/mame/ui/videoopt.cpp index 21ba181ecb7..e49b743fc15 100644 --- a/src/frontend/mame/ui/videoopt.cpp +++ b/src/frontend/mame/ui/videoopt.cpp @@ -56,9 +56,8 @@ void menu_video_targets::populate(float &customtop, float &custombottom) item_append(util::string_format(_("Screen #%d"), targetnum), 0, target); } - // add option for snapshot target if it has multiple views - if (machine().video().snapshot_target().view_name(1)) - item_append("Snapshot", 0, &machine().video().snapshot_target()); + // add option for snapshot target + item_append("Snapshot", 0, &machine().video().snapshot_target()); } /*------------------------------------------------- @@ -98,8 +97,11 @@ menu_video_options::menu_video_options( , m_show_title(false) , m_snapshot(snapshot) { - set_selected_index(target.view()); - reset(reset_options::REMEMBER_POSITION); + if (!m_snapshot || !machine().video().snap_native()) + { + set_selected_index(target.view()); + reset(reset_options::REMEMBER_POSITION); + } } menu_video_options::menu_video_options( @@ -114,8 +116,11 @@ menu_video_options::menu_video_options( , m_show_title(true) , m_snapshot(snapshot) { - set_selected_index(target.view() + 2); - reset(reset_options::REMEMBER_POSITION); + if (!m_snapshot || !machine().video().snap_native()) + { + set_selected_index(target.view() + 2); + reset(reset_options::REMEMBER_POSITION); + } } menu_video_options::~menu_video_options() @@ -134,9 +139,12 @@ void menu_video_options::populate(float &customtop, float &custombottom) } // add items for each view - for (char const *name = m_target.view_name(ref = 0); name; name = m_target.view_name(++ref)) - item_append(name, 0, reinterpret_cast<void *>(ITEM_VIEW_FIRST + ref)); - item_append(menu_item_type::SEPARATOR); + if (!m_snapshot || !machine().video().snap_native()) + { + for (char const *name = m_target.view_name(ref = 0); name; name = m_target.view_name(++ref)) + item_append(name, 0, reinterpret_cast<void *>(ITEM_VIEW_FIRST + ref)); + item_append(menu_item_type::SEPARATOR); + } // add items for visibility toggles auto const &toggles = m_target.visibility_toggles(); @@ -169,7 +177,8 @@ void menu_video_options::populate(float &customtop, float &custombottom) item_append(_("Rotate"), subtext, FLAG_LEFT_ARROW | FLAG_RIGHT_ARROW, reinterpret_cast<void *>(ITEM_ROTATE)); // cropping - item_append_on_off(_("Zoom to Screen Area"), m_target.zoom_to_screen(), 0, reinterpret_cast<void *>(ITEM_ZOOM)); + bool const canzoom(m_target.current_view().has_art() && !m_target.current_view().visible_screens().empty()); + item_append_on_off(_("Zoom to Screen Area"), m_target.zoom_to_screen(), canzoom ? 0U : (FLAG_INVERT | FLAG_DISABLE), reinterpret_cast<void *>(ITEM_ZOOM)); if (!m_snapshot) { diff --git a/src/lib/util/strformat.cpp b/src/lib/util/strformat.cpp index e72e8b74a83..e173fb6aadf 100644 --- a/src/lib/util/strformat.cpp +++ b/src/lib/util/strformat.cpp @@ -50,6 +50,7 @@ template void format_argument<std::ostream>::static_output<unsigned long long>(s template void format_argument<std::ostream>::static_output<char *>(std::ostream &, format_flags const &, void const *); template void format_argument<std::ostream>::static_output<char const *>(std::ostream &, format_flags const &, void const *); template void format_argument<std::ostream>::static_output<std::string>(std::ostream &, format_flags const &, void const *); +template void format_argument<std::ostream>::static_output<std::string_view>(std::ostream &, format_flags const &, void const *); template bool format_argument<std::ostream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::ostream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::ostream>::static_make_integer<unsigned char>(void const *, int &); @@ -64,6 +65,7 @@ template bool format_argument<std::ostream>::static_make_integer<unsigned long l template bool format_argument<std::ostream>::static_make_integer<char *>(void const *, int &); template bool format_argument<std::ostream>::static_make_integer<char const *>(void const *, int &); template bool format_argument<std::ostream>::static_make_integer<std::string>(void const *, int &); +template bool format_argument<std::ostream>::static_make_integer<std::string_view>(void const *, int &); template void format_argument<std::ostream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::ostream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::ostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -78,6 +80,7 @@ template void format_argument<std::ostream>::static_store_integer<unsigned long template void format_argument<std::ostream>::static_store_integer<char *>(void const *, std::streamoff); template void format_argument<std::ostream>::static_store_integer<char const *>(void const *, std::streamoff); template void format_argument<std::ostream>::static_store_integer<std::string>(void const *, std::streamoff); +template void format_argument<std::ostream>::static_store_integer<std::string_view>(void const *, std::streamoff); template class format_argument<std::wostream>; template void format_argument<std::wostream>::static_output<char>(std::wostream &, format_flags const &, void const *); @@ -95,6 +98,7 @@ template void format_argument<std::wostream>::static_output<unsigned long long>( template void format_argument<std::wostream>::static_output<wchar_t *>(std::wostream &, format_flags const &, void const *); template void format_argument<std::wostream>::static_output<wchar_t const *>(std::wostream &, format_flags const &, void const *); template void format_argument<std::wostream>::static_output<std::wstring>(std::wostream &, format_flags const &, void const *); +template void format_argument<std::wostream>::static_output<std::wstring_view>(std::wostream &, format_flags const &, void const *); template bool format_argument<std::wostream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::wostream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::wostream>::static_make_integer<unsigned char>(void const *, int &); @@ -110,6 +114,7 @@ template bool format_argument<std::wostream>::static_make_integer<unsigned long template bool format_argument<std::wostream>::static_make_integer<wchar_t *>(void const *, int &); template bool format_argument<std::wostream>::static_make_integer<wchar_t const *>(void const *, int &); template bool format_argument<std::wostream>::static_make_integer<std::wstring>(void const *, int &); +template bool format_argument<std::wostream>::static_make_integer<std::wstring_view>(void const *, int &); template void format_argument<std::wostream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::wostream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::wostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -125,6 +130,7 @@ template void format_argument<std::wostream>::static_store_integer<unsigned long template void format_argument<std::wostream>::static_store_integer<wchar_t *>(void const *, std::streamoff); template void format_argument<std::wostream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); template void format_argument<std::wostream>::static_store_integer<std::wstring>(void const *, std::streamoff); +template void format_argument<std::wostream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); template class format_argument<std::iostream>; template void format_argument<std::iostream>::static_output<char>(std::iostream &, format_flags const &, void const *); @@ -141,6 +147,7 @@ template void format_argument<std::iostream>::static_output<unsigned long long>( template void format_argument<std::iostream>::static_output<char *>(std::iostream &, format_flags const &, void const *); template void format_argument<std::iostream>::static_output<char const *>(std::iostream &, format_flags const &, void const *); template void format_argument<std::iostream>::static_output<std::string>(std::iostream &, format_flags const &, void const *); +template void format_argument<std::iostream>::static_output<std::string_view>(std::iostream &, format_flags const &, void const *); template bool format_argument<std::iostream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::iostream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::iostream>::static_make_integer<unsigned char>(void const *, int &); @@ -155,6 +162,7 @@ template bool format_argument<std::iostream>::static_make_integer<unsigned long template bool format_argument<std::iostream>::static_make_integer<char *>(void const *, int &); template bool format_argument<std::iostream>::static_make_integer<char const *>(void const *, int &); template bool format_argument<std::iostream>::static_make_integer<std::string>(void const *, int &); +template bool format_argument<std::iostream>::static_make_integer<std::string_view>(void const *, int &); template void format_argument<std::iostream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::iostream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::iostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -169,6 +177,7 @@ template void format_argument<std::iostream>::static_store_integer<unsigned long template void format_argument<std::iostream>::static_store_integer<char *>(void const *, std::streamoff); template void format_argument<std::iostream>::static_store_integer<char const *>(void const *, std::streamoff); template void format_argument<std::iostream>::static_store_integer<std::string>(void const *, std::streamoff); +template void format_argument<std::iostream>::static_store_integer<std::string_view>(void const *, std::streamoff); template class format_argument<std::wiostream>; template void format_argument<std::wiostream>::static_output<char>(std::wiostream &, format_flags const &, void const *); @@ -186,6 +195,7 @@ template void format_argument<std::wiostream>::static_output<unsigned long long> template void format_argument<std::wiostream>::static_output<wchar_t *>(std::wiostream &, format_flags const &, void const *); template void format_argument<std::wiostream>::static_output<wchar_t const *>(std::wiostream &, format_flags const &, void const *); template void format_argument<std::wiostream>::static_output<std::wstring>(std::wiostream &, format_flags const &, void const *); +template void format_argument<std::wiostream>::static_output<std::wstring_view>(std::wiostream &, format_flags const &, void const *); template bool format_argument<std::wiostream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::wiostream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::wiostream>::static_make_integer<unsigned char>(void const *, int &); @@ -201,6 +211,7 @@ template bool format_argument<std::wiostream>::static_make_integer<unsigned long template bool format_argument<std::wiostream>::static_make_integer<wchar_t *>(void const *, int &); template bool format_argument<std::wiostream>::static_make_integer<wchar_t const *>(void const *, int &); template bool format_argument<std::wiostream>::static_make_integer<std::wstring>(void const *, int &); +template bool format_argument<std::wiostream>::static_make_integer<std::wstring_view>(void const *, int &); template void format_argument<std::wiostream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::wiostream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::wiostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -216,6 +227,7 @@ template void format_argument<std::wiostream>::static_store_integer<unsigned lon template void format_argument<std::wiostream>::static_store_integer<wchar_t *>(void const *, std::streamoff); template void format_argument<std::wiostream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); template void format_argument<std::wiostream>::static_store_integer<std::wstring>(void const *, std::streamoff); +template void format_argument<std::wiostream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); template class format_argument<std::ostringstream>; template void format_argument<std::ostringstream>::static_output<char>(std::ostringstream &, format_flags const &, void const *); @@ -232,6 +244,7 @@ template void format_argument<std::ostringstream>::static_output<unsigned long l template void format_argument<std::ostringstream>::static_output<char *>(std::ostringstream &, format_flags const &, void const *); template void format_argument<std::ostringstream>::static_output<char const *>(std::ostringstream &, format_flags const &, void const *); template void format_argument<std::ostringstream>::static_output<std::string>(std::ostringstream &, format_flags const &, void const *); +template void format_argument<std::ostringstream>::static_output<std::string_view>(std::ostringstream &, format_flags const &, void const *); template bool format_argument<std::ostringstream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::ostringstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::ostringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -246,6 +259,7 @@ template bool format_argument<std::ostringstream>::static_make_integer<unsigned template bool format_argument<std::ostringstream>::static_make_integer<char *>(void const *, int &); template bool format_argument<std::ostringstream>::static_make_integer<char const *>(void const *, int &); template bool format_argument<std::ostringstream>::static_make_integer<std::string>(void const *, int &); +template bool format_argument<std::ostringstream>::static_make_integer<std::string_view>(void const *, int &); template void format_argument<std::ostringstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::ostringstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::ostringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -260,6 +274,7 @@ template void format_argument<std::ostringstream>::static_store_integer<unsigned template void format_argument<std::ostringstream>::static_store_integer<char *>(void const *, std::streamoff); template void format_argument<std::ostringstream>::static_store_integer<char const *>(void const *, std::streamoff); template void format_argument<std::ostringstream>::static_store_integer<std::string>(void const *, std::streamoff); +template void format_argument<std::ostringstream>::static_store_integer<std::string_view>(void const *, std::streamoff); template class format_argument<std::wostringstream>; template void format_argument<std::wostringstream>::static_output<char>(std::wostringstream &, format_flags const &, void const *); @@ -277,6 +292,7 @@ template void format_argument<std::wostringstream>::static_output<unsigned long template void format_argument<std::wostringstream>::static_output<wchar_t *>(std::wostringstream &, format_flags const &, void const *); template void format_argument<std::wostringstream>::static_output<wchar_t const *>(std::wostringstream &, format_flags const &, void const *); template void format_argument<std::wostringstream>::static_output<std::wstring>(std::wostringstream &, format_flags const &, void const *); +template void format_argument<std::wostringstream>::static_output<std::wstring_view>(std::wostringstream &, format_flags const &, void const *); template bool format_argument<std::wostringstream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::wostringstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::wostringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -292,6 +308,7 @@ template bool format_argument<std::wostringstream>::static_make_integer<unsigned template bool format_argument<std::wostringstream>::static_make_integer<wchar_t *>(void const *, int &); template bool format_argument<std::wostringstream>::static_make_integer<wchar_t const *>(void const *, int &); template bool format_argument<std::wostringstream>::static_make_integer<std::wstring>(void const *, int &); +template bool format_argument<std::wostringstream>::static_make_integer<std::wstring_view>(void const *, int &); template void format_argument<std::wostringstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::wostringstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::wostringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -307,6 +324,7 @@ template void format_argument<std::wostringstream>::static_store_integer<unsigne template void format_argument<std::wostringstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); template void format_argument<std::wostringstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); template void format_argument<std::wostringstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +template void format_argument<std::wostringstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); template class format_argument<std::stringstream>; template void format_argument<std::stringstream>::static_output<char>(std::stringstream &, format_flags const &, void const *); @@ -323,6 +341,7 @@ template void format_argument<std::stringstream>::static_output<unsigned long lo template void format_argument<std::stringstream>::static_output<char *>(std::stringstream &, format_flags const &, void const *); template void format_argument<std::stringstream>::static_output<char const *>(std::stringstream &, format_flags const &, void const *); template void format_argument<std::stringstream>::static_output<std::string>(std::stringstream &, format_flags const &, void const *); +template void format_argument<std::stringstream>::static_output<std::string_view>(std::stringstream &, format_flags const &, void const *); template bool format_argument<std::stringstream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::stringstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::stringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -337,6 +356,7 @@ template bool format_argument<std::stringstream>::static_make_integer<unsigned l template bool format_argument<std::stringstream>::static_make_integer<char *>(void const *, int &); template bool format_argument<std::stringstream>::static_make_integer<char const *>(void const *, int &); template bool format_argument<std::stringstream>::static_make_integer<std::string>(void const *, int &); +template bool format_argument<std::stringstream>::static_make_integer<std::string_view>(void const *, int &); template void format_argument<std::stringstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::stringstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::stringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -351,6 +371,7 @@ template void format_argument<std::stringstream>::static_store_integer<unsigned template void format_argument<std::stringstream>::static_store_integer<char *>(void const *, std::streamoff); template void format_argument<std::stringstream>::static_store_integer<char const *>(void const *, std::streamoff); template void format_argument<std::stringstream>::static_store_integer<std::string>(void const *, std::streamoff); +template void format_argument<std::stringstream>::static_store_integer<std::string_view>(void const *, std::streamoff); template class format_argument<std::wstringstream>; template void format_argument<std::wstringstream>::static_output<char>(std::wstringstream &, format_flags const &, void const *); @@ -368,6 +389,7 @@ template void format_argument<std::wstringstream>::static_output<unsigned long l template void format_argument<std::wstringstream>::static_output<wchar_t *>(std::wstringstream &, format_flags const &, void const *); template void format_argument<std::wstringstream>::static_output<wchar_t const *>(std::wstringstream &, format_flags const &, void const *); template void format_argument<std::wstringstream>::static_output<std::wstring>(std::wstringstream &, format_flags const &, void const *); +template void format_argument<std::wstringstream>::static_output<std::wstring_view>(std::wstringstream &, format_flags const &, void const *); template bool format_argument<std::wstringstream>::static_make_integer<char>(void const *, int &); template bool format_argument<std::wstringstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<std::wstringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -383,6 +405,7 @@ template bool format_argument<std::wstringstream>::static_make_integer<unsigned template bool format_argument<std::wstringstream>::static_make_integer<wchar_t *>(void const *, int &); template bool format_argument<std::wstringstream>::static_make_integer<wchar_t const *>(void const *, int &); template bool format_argument<std::wstringstream>::static_make_integer<std::wstring>(void const *, int &); +template bool format_argument<std::wstringstream>::static_make_integer<std::wstring_view>(void const *, int &); template void format_argument<std::wstringstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<std::wstringstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<std::wstringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -398,6 +421,7 @@ template void format_argument<std::wstringstream>::static_store_integer<unsigned template void format_argument<std::wstringstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); template void format_argument<std::wstringstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); template void format_argument<std::wstringstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +template void format_argument<std::wstringstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); template class format_argument<ovectorstream>; template void format_argument<ovectorstream>::static_output<char>(ovectorstream &, format_flags const &, void const *); @@ -414,6 +438,7 @@ template void format_argument<ovectorstream>::static_output<unsigned long long>( template void format_argument<ovectorstream>::static_output<char *>(ovectorstream &, format_flags const &, void const *); template void format_argument<ovectorstream>::static_output<char const *>(ovectorstream &, format_flags const &, void const *); template void format_argument<ovectorstream>::static_output<std::string>(ovectorstream &, format_flags const &, void const *); +template void format_argument<ovectorstream>::static_output<std::string_view>(ovectorstream &, format_flags const &, void const *); template bool format_argument<ovectorstream>::static_make_integer<char>(void const *, int &); template bool format_argument<ovectorstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<ovectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -428,6 +453,7 @@ template bool format_argument<ovectorstream>::static_make_integer<unsigned long template bool format_argument<ovectorstream>::static_make_integer<char *>(void const *, int &); template bool format_argument<ovectorstream>::static_make_integer<char const *>(void const *, int &); template bool format_argument<ovectorstream>::static_make_integer<std::string>(void const *, int &); +template bool format_argument<ovectorstream>::static_make_integer<std::string_view>(void const *, int &); template void format_argument<ovectorstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<ovectorstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<ovectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -442,6 +468,7 @@ template void format_argument<ovectorstream>::static_store_integer<unsigned long template void format_argument<ovectorstream>::static_store_integer<char *>(void const *, std::streamoff); template void format_argument<ovectorstream>::static_store_integer<char const *>(void const *, std::streamoff); template void format_argument<ovectorstream>::static_store_integer<std::string>(void const *, std::streamoff); +template void format_argument<ovectorstream>::static_store_integer<std::string_view>(void const *, std::streamoff); template class format_argument<wovectorstream>; template void format_argument<wovectorstream>::static_output<char>(wovectorstream &, format_flags const &, void const *); @@ -459,6 +486,7 @@ template void format_argument<wovectorstream>::static_output<unsigned long long> template void format_argument<wovectorstream>::static_output<wchar_t *>(wovectorstream &, format_flags const &, void const *); template void format_argument<wovectorstream>::static_output<wchar_t const *>(wovectorstream &, format_flags const &, void const *); template void format_argument<wovectorstream>::static_output<std::wstring>(wovectorstream &, format_flags const &, void const *); +template void format_argument<wovectorstream>::static_output<std::wstring_view>(wovectorstream &, format_flags const &, void const *); template bool format_argument<wovectorstream>::static_make_integer<char>(void const *, int &); template bool format_argument<wovectorstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<wovectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -474,6 +502,7 @@ template bool format_argument<wovectorstream>::static_make_integer<unsigned long template bool format_argument<wovectorstream>::static_make_integer<wchar_t *>(void const *, int &); template bool format_argument<wovectorstream>::static_make_integer<wchar_t const *>(void const *, int &); template bool format_argument<wovectorstream>::static_make_integer<std::wstring>(void const *, int &); +template bool format_argument<wovectorstream>::static_make_integer<std::wstring_view>(void const *, int &); template void format_argument<wovectorstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<wovectorstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<wovectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -489,6 +518,7 @@ template void format_argument<wovectorstream>::static_store_integer<unsigned lon template void format_argument<wovectorstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); template void format_argument<wovectorstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); template void format_argument<wovectorstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +template void format_argument<wovectorstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); template class format_argument<vectorstream>; template void format_argument<vectorstream>::static_output<char>(vectorstream &, format_flags const &, void const *); @@ -505,6 +535,7 @@ template void format_argument<vectorstream>::static_output<unsigned long long>(v template void format_argument<vectorstream>::static_output<char *>(vectorstream &, format_flags const &, void const *); template void format_argument<vectorstream>::static_output<char const *>(vectorstream &, format_flags const &, void const *); template void format_argument<vectorstream>::static_output<std::string>(vectorstream &, format_flags const &, void const *); +template void format_argument<vectorstream>::static_output<std::string_view>(vectorstream &, format_flags const &, void const *); template bool format_argument<vectorstream>::static_make_integer<char>(void const *, int &); template bool format_argument<vectorstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<vectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -519,6 +550,7 @@ template bool format_argument<vectorstream>::static_make_integer<unsigned long l template bool format_argument<vectorstream>::static_make_integer<char *>(void const *, int &); template bool format_argument<vectorstream>::static_make_integer<char const *>(void const *, int &); template bool format_argument<vectorstream>::static_make_integer<std::string>(void const *, int &); +template bool format_argument<vectorstream>::static_make_integer<std::string_view>(void const *, int &); template void format_argument<vectorstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<vectorstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<vectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -533,6 +565,7 @@ template void format_argument<vectorstream>::static_store_integer<unsigned long template void format_argument<vectorstream>::static_store_integer<char *>(void const *, std::streamoff); template void format_argument<vectorstream>::static_store_integer<char const *>(void const *, std::streamoff); template void format_argument<vectorstream>::static_store_integer<std::string>(void const *, std::streamoff); +template void format_argument<vectorstream>::static_store_integer<std::string_view>(void const *, std::streamoff); template class format_argument<wvectorstream>; template void format_argument<wvectorstream>::static_output<char>(wvectorstream &, format_flags const &, void const *); @@ -550,6 +583,7 @@ template void format_argument<wvectorstream>::static_output<unsigned long long>( template void format_argument<wvectorstream>::static_output<wchar_t *>(wvectorstream &, format_flags const &, void const *); template void format_argument<wvectorstream>::static_output<wchar_t const *>(wvectorstream &, format_flags const &, void const *); template void format_argument<wvectorstream>::static_output<std::wstring>(wvectorstream &, format_flags const &, void const *); +template void format_argument<wvectorstream>::static_output<std::wstring_view>(wvectorstream &, format_flags const &, void const *); template bool format_argument<wvectorstream>::static_make_integer<char>(void const *, int &); template bool format_argument<wvectorstream>::static_make_integer<signed char>(void const *, int &); template bool format_argument<wvectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -565,6 +599,7 @@ template bool format_argument<wvectorstream>::static_make_integer<unsigned long template bool format_argument<wvectorstream>::static_make_integer<wchar_t *>(void const *, int &); template bool format_argument<wvectorstream>::static_make_integer<wchar_t const *>(void const *, int &); template bool format_argument<wvectorstream>::static_make_integer<std::wstring>(void const *, int &); +template bool format_argument<wvectorstream>::static_make_integer<std::wstring_view>(void const *, int &); template void format_argument<wvectorstream>::static_store_integer<char>(void const *, std::streamoff); template void format_argument<wvectorstream>::static_store_integer<signed char>(void const *, std::streamoff); template void format_argument<wvectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -580,6 +615,7 @@ template void format_argument<wvectorstream>::static_store_integer<unsigned long template void format_argument<wvectorstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); template void format_argument<wvectorstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); template void format_argument<wvectorstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +template void format_argument<wvectorstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); template class format_argument_pack<std::ostream>; template class format_argument_pack<std::wostream>; diff --git a/src/lib/util/strformat.h b/src/lib/util/strformat.h index 0ce57606436..1f9818fa465 100644 --- a/src/lib/util/strformat.h +++ b/src/lib/util/strformat.h @@ -1817,6 +1817,7 @@ extern template void format_argument<std::ostream>::static_output<unsigned long extern template void format_argument<std::ostream>::static_output<char *>(std::ostream &, format_flags const &, void const *); extern template void format_argument<std::ostream>::static_output<char const *>(std::ostream &, format_flags const &, void const *); extern template void format_argument<std::ostream>::static_output<std::string>(std::ostream &, format_flags const &, void const *); +extern template void format_argument<std::ostream>::static_output<std::string_view>(std::ostream &, format_flags const &, void const *); extern template bool format_argument<std::ostream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::ostream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::ostream>::static_make_integer<unsigned char>(void const *, int &); @@ -1831,6 +1832,7 @@ extern template bool format_argument<std::ostream>::static_make_integer<unsigned extern template bool format_argument<std::ostream>::static_make_integer<char *>(void const *, int &); extern template bool format_argument<std::ostream>::static_make_integer<char const *>(void const *, int &); extern template bool format_argument<std::ostream>::static_make_integer<std::string>(void const *, int &); +extern template bool format_argument<std::ostream>::static_make_integer<std::string_view>(void const *, int &); extern template void format_argument<std::ostream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::ostream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::ostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -1845,6 +1847,7 @@ extern template void format_argument<std::ostream>::static_store_integer<unsigne extern template void format_argument<std::ostream>::static_store_integer<char *>(void const *, std::streamoff); extern template void format_argument<std::ostream>::static_store_integer<char const *>(void const *, std::streamoff); extern template void format_argument<std::ostream>::static_store_integer<std::string>(void const *, std::streamoff); +extern template void format_argument<std::ostream>::static_store_integer<std::string_view>(void const *, std::streamoff); extern template class format_argument<std::wostream>; extern template void format_argument<std::wostream>::static_output<char>(std::wostream &, format_flags const &, void const *); @@ -1862,6 +1865,7 @@ extern template void format_argument<std::wostream>::static_output<unsigned long extern template void format_argument<std::wostream>::static_output<wchar_t *>(std::wostream &, format_flags const &, void const *); extern template void format_argument<std::wostream>::static_output<wchar_t const *>(std::wostream &, format_flags const &, void const *); extern template void format_argument<std::wostream>::static_output<std::wstring>(std::wostream &, format_flags const &, void const *); +extern template void format_argument<std::wostream>::static_output<std::wstring_view>(std::wostream &, format_flags const &, void const *); extern template bool format_argument<std::wostream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::wostream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::wostream>::static_make_integer<unsigned char>(void const *, int &); @@ -1877,6 +1881,7 @@ extern template bool format_argument<std::wostream>::static_make_integer<unsigne extern template bool format_argument<std::wostream>::static_make_integer<wchar_t *>(void const *, int &); extern template bool format_argument<std::wostream>::static_make_integer<wchar_t const *>(void const *, int &); extern template bool format_argument<std::wostream>::static_make_integer<std::wstring>(void const *, int &); +extern template bool format_argument<std::wostream>::static_make_integer<std::wstring_view>(void const *, int &); extern template void format_argument<std::wostream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::wostream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::wostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -1892,6 +1897,7 @@ extern template void format_argument<std::wostream>::static_store_integer<unsign extern template void format_argument<std::wostream>::static_store_integer<wchar_t *>(void const *, std::streamoff); extern template void format_argument<std::wostream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); extern template void format_argument<std::wostream>::static_store_integer<std::wstring>(void const *, std::streamoff); +extern template void format_argument<std::wostream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); extern template class format_argument<std::iostream>; extern template void format_argument<std::iostream>::static_output<char>(std::iostream &, format_flags const &, void const *); @@ -1908,6 +1914,7 @@ extern template void format_argument<std::iostream>::static_output<unsigned long extern template void format_argument<std::iostream>::static_output<char *>(std::iostream &, format_flags const &, void const *); extern template void format_argument<std::iostream>::static_output<char const *>(std::iostream &, format_flags const &, void const *); extern template void format_argument<std::iostream>::static_output<std::string>(std::iostream &, format_flags const &, void const *); +extern template void format_argument<std::iostream>::static_output<std::string_view>(std::iostream &, format_flags const &, void const *); extern template bool format_argument<std::iostream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::iostream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::iostream>::static_make_integer<unsigned char>(void const *, int &); @@ -1922,6 +1929,7 @@ extern template bool format_argument<std::iostream>::static_make_integer<unsigne extern template bool format_argument<std::iostream>::static_make_integer<char *>(void const *, int &); extern template bool format_argument<std::iostream>::static_make_integer<char const *>(void const *, int &); extern template bool format_argument<std::iostream>::static_make_integer<std::string>(void const *, int &); +extern template bool format_argument<std::iostream>::static_make_integer<std::string_view>(void const *, int &); extern template void format_argument<std::iostream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::iostream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::iostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -1936,6 +1944,7 @@ extern template void format_argument<std::iostream>::static_store_integer<unsign extern template void format_argument<std::iostream>::static_store_integer<char *>(void const *, std::streamoff); extern template void format_argument<std::iostream>::static_store_integer<char const *>(void const *, std::streamoff); extern template void format_argument<std::iostream>::static_store_integer<std::string>(void const *, std::streamoff); +extern template void format_argument<std::iostream>::static_store_integer<std::string_view>(void const *, std::streamoff); extern template class format_argument<std::wiostream>; extern template void format_argument<std::wiostream>::static_output<char>(std::wiostream &, format_flags const &, void const *); @@ -1953,6 +1962,7 @@ extern template void format_argument<std::wiostream>::static_output<unsigned lon extern template void format_argument<std::wiostream>::static_output<wchar_t *>(std::wiostream &, format_flags const &, void const *); extern template void format_argument<std::wiostream>::static_output<wchar_t const *>(std::wiostream &, format_flags const &, void const *); extern template void format_argument<std::wiostream>::static_output<std::wstring>(std::wiostream &, format_flags const &, void const *); +extern template void format_argument<std::wiostream>::static_output<std::wstring_view>(std::wiostream &, format_flags const &, void const *); extern template bool format_argument<std::wiostream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::wiostream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::wiostream>::static_make_integer<unsigned char>(void const *, int &); @@ -1968,6 +1978,7 @@ extern template bool format_argument<std::wiostream>::static_make_integer<unsign extern template bool format_argument<std::wiostream>::static_make_integer<wchar_t *>(void const *, int &); extern template bool format_argument<std::wiostream>::static_make_integer<wchar_t const *>(void const *, int &); extern template bool format_argument<std::wiostream>::static_make_integer<std::wstring>(void const *, int &); +extern template bool format_argument<std::wiostream>::static_make_integer<std::wstring_view>(void const *, int &); extern template void format_argument<std::wiostream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::wiostream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::wiostream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -1983,6 +1994,7 @@ extern template void format_argument<std::wiostream>::static_store_integer<unsig extern template void format_argument<std::wiostream>::static_store_integer<wchar_t *>(void const *, std::streamoff); extern template void format_argument<std::wiostream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); extern template void format_argument<std::wiostream>::static_store_integer<std::wstring>(void const *, std::streamoff); +extern template void format_argument<std::wiostream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); extern template class format_argument<std::ostringstream>; extern template void format_argument<std::ostringstream>::static_output<char>(std::ostringstream &, format_flags const &, void const *); @@ -1999,6 +2011,7 @@ extern template void format_argument<std::ostringstream>::static_output<unsigned extern template void format_argument<std::ostringstream>::static_output<char *>(std::ostringstream &, format_flags const &, void const *); extern template void format_argument<std::ostringstream>::static_output<char const *>(std::ostringstream &, format_flags const &, void const *); extern template void format_argument<std::ostringstream>::static_output<std::string>(std::ostringstream &, format_flags const &, void const *); +extern template void format_argument<std::ostringstream>::static_output<std::string_view>(std::ostringstream &, format_flags const &, void const *); extern template bool format_argument<std::ostringstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::ostringstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::ostringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2013,6 +2026,7 @@ extern template bool format_argument<std::ostringstream>::static_make_integer<un extern template bool format_argument<std::ostringstream>::static_make_integer<char *>(void const *, int &); extern template bool format_argument<std::ostringstream>::static_make_integer<char const *>(void const *, int &); extern template bool format_argument<std::ostringstream>::static_make_integer<std::string>(void const *, int &); +extern template bool format_argument<std::ostringstream>::static_make_integer<std::string_view>(void const *, int &); extern template void format_argument<std::ostringstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::ostringstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::ostringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2027,6 +2041,7 @@ extern template void format_argument<std::ostringstream>::static_store_integer<u extern template void format_argument<std::ostringstream>::static_store_integer<char *>(void const *, std::streamoff); extern template void format_argument<std::ostringstream>::static_store_integer<char const *>(void const *, std::streamoff); extern template void format_argument<std::ostringstream>::static_store_integer<std::string>(void const *, std::streamoff); +extern template void format_argument<std::ostringstream>::static_store_integer<std::string_view>(void const *, std::streamoff); extern template class format_argument<std::wostringstream>; extern template void format_argument<std::wostringstream>::static_output<char>(std::wostringstream &, format_flags const &, void const *); @@ -2044,6 +2059,7 @@ extern template void format_argument<std::wostringstream>::static_output<unsigne extern template void format_argument<std::wostringstream>::static_output<wchar_t *>(std::wostringstream &, format_flags const &, void const *); extern template void format_argument<std::wostringstream>::static_output<wchar_t const *>(std::wostringstream &, format_flags const &, void const *); extern template void format_argument<std::wostringstream>::static_output<std::wstring>(std::wostringstream &, format_flags const &, void const *); +extern template void format_argument<std::wostringstream>::static_output<std::wstring_view>(std::wostringstream &, format_flags const &, void const *); extern template bool format_argument<std::wostringstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::wostringstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::wostringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2059,6 +2075,7 @@ extern template bool format_argument<std::wostringstream>::static_make_integer<u extern template bool format_argument<std::wostringstream>::static_make_integer<wchar_t *>(void const *, int &); extern template bool format_argument<std::wostringstream>::static_make_integer<wchar_t const *>(void const *, int &); extern template bool format_argument<std::wostringstream>::static_make_integer<std::wstring>(void const *, int &); +extern template bool format_argument<std::wostringstream>::static_make_integer<std::wstring_view>(void const *, int &); extern template void format_argument<std::wostringstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::wostringstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::wostringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2074,6 +2091,7 @@ extern template void format_argument<std::wostringstream>::static_store_integer< extern template void format_argument<std::wostringstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); extern template void format_argument<std::wostringstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); extern template void format_argument<std::wostringstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +extern template void format_argument<std::wostringstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); extern template class format_argument<std::stringstream>; extern template void format_argument<std::stringstream>::static_output<char>(std::stringstream &, format_flags const &, void const *); @@ -2090,6 +2108,7 @@ extern template void format_argument<std::stringstream>::static_output<unsigned extern template void format_argument<std::stringstream>::static_output<char *>(std::stringstream &, format_flags const &, void const *); extern template void format_argument<std::stringstream>::static_output<char const *>(std::stringstream &, format_flags const &, void const *); extern template void format_argument<std::stringstream>::static_output<std::string>(std::stringstream &, format_flags const &, void const *); +extern template void format_argument<std::stringstream>::static_output<std::string_view>(std::stringstream &, format_flags const &, void const *); extern template bool format_argument<std::stringstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::stringstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::stringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2104,6 +2123,7 @@ extern template bool format_argument<std::stringstream>::static_make_integer<uns extern template bool format_argument<std::stringstream>::static_make_integer<char *>(void const *, int &); extern template bool format_argument<std::stringstream>::static_make_integer<char const *>(void const *, int &); extern template bool format_argument<std::stringstream>::static_make_integer<std::string>(void const *, int &); +extern template bool format_argument<std::stringstream>::static_make_integer<std::string_view>(void const *, int &); extern template void format_argument<std::stringstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::stringstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::stringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2118,6 +2138,7 @@ extern template void format_argument<std::stringstream>::static_store_integer<un extern template void format_argument<std::stringstream>::static_store_integer<char *>(void const *, std::streamoff); extern template void format_argument<std::stringstream>::static_store_integer<char const *>(void const *, std::streamoff); extern template void format_argument<std::stringstream>::static_store_integer<std::string>(void const *, std::streamoff); +extern template void format_argument<std::stringstream>::static_store_integer<std::string_view>(void const *, std::streamoff); extern template class format_argument<std::wstringstream>; extern template void format_argument<std::wstringstream>::static_output<char>(std::wstringstream &, format_flags const &, void const *); @@ -2135,6 +2156,7 @@ extern template void format_argument<std::wstringstream>::static_output<unsigned extern template void format_argument<std::wstringstream>::static_output<wchar_t *>(std::wstringstream &, format_flags const &, void const *); extern template void format_argument<std::wstringstream>::static_output<wchar_t const *>(std::wstringstream &, format_flags const &, void const *); extern template void format_argument<std::wstringstream>::static_output<std::wstring>(std::wstringstream &, format_flags const &, void const *); +extern template void format_argument<std::wstringstream>::static_output<std::wstring_view>(std::wstringstream &, format_flags const &, void const *); extern template bool format_argument<std::wstringstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<std::wstringstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<std::wstringstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2150,6 +2172,7 @@ extern template bool format_argument<std::wstringstream>::static_make_integer<un extern template bool format_argument<std::wstringstream>::static_make_integer<wchar_t *>(void const *, int &); extern template bool format_argument<std::wstringstream>::static_make_integer<wchar_t const *>(void const *, int &); extern template bool format_argument<std::wstringstream>::static_make_integer<std::wstring>(void const *, int &); +extern template bool format_argument<std::wstringstream>::static_make_integer<std::wstring_view>(void const *, int &); extern template void format_argument<std::wstringstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<std::wstringstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<std::wstringstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2165,6 +2188,7 @@ extern template void format_argument<std::wstringstream>::static_store_integer<u extern template void format_argument<std::wstringstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); extern template void format_argument<std::wstringstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); extern template void format_argument<std::wstringstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +extern template void format_argument<std::wstringstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); extern template class format_argument<ovectorstream>; extern template void format_argument<ovectorstream>::static_output<char>(ovectorstream &, format_flags const &, void const *); @@ -2181,6 +2205,7 @@ extern template void format_argument<ovectorstream>::static_output<unsigned long extern template void format_argument<ovectorstream>::static_output<char *>(ovectorstream &, format_flags const &, void const *); extern template void format_argument<ovectorstream>::static_output<char const *>(ovectorstream &, format_flags const &, void const *); extern template void format_argument<ovectorstream>::static_output<std::string>(ovectorstream &, format_flags const &, void const *); +extern template void format_argument<ovectorstream>::static_output<std::string_view>(ovectorstream &, format_flags const &, void const *); extern template bool format_argument<ovectorstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<ovectorstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<ovectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2195,6 +2220,7 @@ extern template bool format_argument<ovectorstream>::static_make_integer<unsigne extern template bool format_argument<ovectorstream>::static_make_integer<char *>(void const *, int &); extern template bool format_argument<ovectorstream>::static_make_integer<char const *>(void const *, int &); extern template bool format_argument<ovectorstream>::static_make_integer<std::string>(void const *, int &); +extern template bool format_argument<ovectorstream>::static_make_integer<std::string_view>(void const *, int &); extern template void format_argument<ovectorstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<ovectorstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<ovectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2209,6 +2235,7 @@ extern template void format_argument<ovectorstream>::static_store_integer<unsign extern template void format_argument<ovectorstream>::static_store_integer<char *>(void const *, std::streamoff); extern template void format_argument<ovectorstream>::static_store_integer<char const *>(void const *, std::streamoff); extern template void format_argument<ovectorstream>::static_store_integer<std::string>(void const *, std::streamoff); +extern template void format_argument<ovectorstream>::static_store_integer<std::string_view>(void const *, std::streamoff); extern template class format_argument<wovectorstream>; extern template void format_argument<wovectorstream>::static_output<char>(wovectorstream &, format_flags const &, void const *); @@ -2226,6 +2253,7 @@ extern template void format_argument<wovectorstream>::static_output<unsigned lon extern template void format_argument<wovectorstream>::static_output<wchar_t *>(wovectorstream &, format_flags const &, void const *); extern template void format_argument<wovectorstream>::static_output<wchar_t const *>(wovectorstream &, format_flags const &, void const *); extern template void format_argument<wovectorstream>::static_output<std::wstring>(wovectorstream &, format_flags const &, void const *); +extern template void format_argument<wovectorstream>::static_output<std::wstring_view>(wovectorstream &, format_flags const &, void const *); extern template bool format_argument<wovectorstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<wovectorstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<wovectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2241,6 +2269,7 @@ extern template bool format_argument<wovectorstream>::static_make_integer<unsign extern template bool format_argument<wovectorstream>::static_make_integer<wchar_t *>(void const *, int &); extern template bool format_argument<wovectorstream>::static_make_integer<wchar_t const *>(void const *, int &); extern template bool format_argument<wovectorstream>::static_make_integer<std::wstring>(void const *, int &); +extern template bool format_argument<wovectorstream>::static_make_integer<std::wstring_view>(void const *, int &); extern template void format_argument<wovectorstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<wovectorstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<wovectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2256,6 +2285,7 @@ extern template void format_argument<wovectorstream>::static_store_integer<unsig extern template void format_argument<wovectorstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); extern template void format_argument<wovectorstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); extern template void format_argument<wovectorstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +extern template void format_argument<wovectorstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); extern template class format_argument<vectorstream>; extern template void format_argument<vectorstream>::static_output<char>(vectorstream &, format_flags const &, void const *); @@ -2272,6 +2302,7 @@ extern template void format_argument<vectorstream>::static_output<unsigned long extern template void format_argument<vectorstream>::static_output<char *>(vectorstream &, format_flags const &, void const *); extern template void format_argument<vectorstream>::static_output<char const *>(vectorstream &, format_flags const &, void const *); extern template void format_argument<vectorstream>::static_output<std::string>(vectorstream &, format_flags const &, void const *); +extern template void format_argument<vectorstream>::static_output<std::string_view>(vectorstream &, format_flags const &, void const *); extern template bool format_argument<vectorstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<vectorstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<vectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2286,6 +2317,7 @@ extern template bool format_argument<vectorstream>::static_make_integer<unsigned extern template bool format_argument<vectorstream>::static_make_integer<char *>(void const *, int &); extern template bool format_argument<vectorstream>::static_make_integer<char const *>(void const *, int &); extern template bool format_argument<vectorstream>::static_make_integer<std::string>(void const *, int &); +extern template bool format_argument<vectorstream>::static_make_integer<std::string_view>(void const *, int &); extern template void format_argument<vectorstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<vectorstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<vectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2300,6 +2332,7 @@ extern template void format_argument<vectorstream>::static_store_integer<unsigne extern template void format_argument<vectorstream>::static_store_integer<char *>(void const *, std::streamoff); extern template void format_argument<vectorstream>::static_store_integer<char const *>(void const *, std::streamoff); extern template void format_argument<vectorstream>::static_store_integer<std::string>(void const *, std::streamoff); +extern template void format_argument<vectorstream>::static_store_integer<std::string_view>(void const *, std::streamoff); extern template class format_argument<wvectorstream>; extern template void format_argument<wvectorstream>::static_output<char>(wvectorstream &, format_flags const &, void const *); @@ -2317,6 +2350,7 @@ extern template void format_argument<wvectorstream>::static_output<unsigned long extern template void format_argument<wvectorstream>::static_output<wchar_t *>(wvectorstream &, format_flags const &, void const *); extern template void format_argument<wvectorstream>::static_output<wchar_t const *>(wvectorstream &, format_flags const &, void const *); extern template void format_argument<wvectorstream>::static_output<std::wstring>(wvectorstream &, format_flags const &, void const *); +extern template void format_argument<wvectorstream>::static_output<std::wstring_view>(wvectorstream &, format_flags const &, void const *); extern template bool format_argument<wvectorstream>::static_make_integer<char>(void const *, int &); extern template bool format_argument<wvectorstream>::static_make_integer<signed char>(void const *, int &); extern template bool format_argument<wvectorstream>::static_make_integer<unsigned char>(void const *, int &); @@ -2332,6 +2366,7 @@ extern template bool format_argument<wvectorstream>::static_make_integer<unsigne extern template bool format_argument<wvectorstream>::static_make_integer<wchar_t *>(void const *, int &); extern template bool format_argument<wvectorstream>::static_make_integer<wchar_t const *>(void const *, int &); extern template bool format_argument<wvectorstream>::static_make_integer<std::wstring>(void const *, int &); +extern template bool format_argument<wvectorstream>::static_make_integer<std::wstring_view>(void const *, int &); extern template void format_argument<wvectorstream>::static_store_integer<char>(void const *, std::streamoff); extern template void format_argument<wvectorstream>::static_store_integer<signed char>(void const *, std::streamoff); extern template void format_argument<wvectorstream>::static_store_integer<unsigned char>(void const *, std::streamoff); @@ -2347,6 +2382,7 @@ extern template void format_argument<wvectorstream>::static_store_integer<unsign extern template void format_argument<wvectorstream>::static_store_integer<wchar_t *>(void const *, std::streamoff); extern template void format_argument<wvectorstream>::static_store_integer<wchar_t const *>(void const *, std::streamoff); extern template void format_argument<wvectorstream>::static_store_integer<std::wstring>(void const *, std::streamoff); +extern template void format_argument<wvectorstream>::static_store_integer<std::wstring_view>(void const *, std::streamoff); extern template class format_argument_pack<std::ostream>; extern template class format_argument_pack<std::wostream>; |