summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/pstream.h
diff options
context:
space:
mode:
author couriersud <couriersud@gmx.org>2020-06-06 20:41:53 +0200
committer couriersud <couriersud@gmx.org>2020-06-06 20:43:12 +0200
commit8a1ece4a3b10d035af91e71adef4384ced0e3fca (patch)
tree80a856030cd3e8e85cda249abf17259885cf98b4 /src/lib/netlist/plib/pstream.h
parente3901f419cb241be55bba6dd6dc29f0cf5778ae3 (diff)
netlist: Reduce macro usage and make use of pstring utf8. (nw)
Diffstat (limited to 'src/lib/netlist/plib/pstream.h')
-rw-r--r--src/lib/netlist/plib/pstream.h29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/lib/netlist/plib/pstream.h b/src/lib/netlist/plib/pstream.h
index e5fc0e24b80..8c8eb70ef76 100644
--- a/src/lib/netlist/plib/pstream.h
+++ b/src/lib/netlist/plib/pstream.h
@@ -194,7 +194,7 @@ public:
void write(const pstring &s)
{
const auto *const sm = reinterpret_cast<const std::ostream::char_type *>(s.c_str());
- const auto sl(static_cast<std::streamsize>(pstring_mem_t_size(s)));
+ const auto sl(static_cast<std::streamsize>(std::char_traits<std::ostream::char_type>::length(sm)));
write(sl);
m_strm.write(sm, sl);
}
@@ -268,19 +268,15 @@ inline void copystream(std::ostream &dest, std::istream &src)
class ifstream : public std::ifstream
{
public:
-#ifdef _WIN32
- template <typename T>
- explicit ifstream(const pstring_t<T> name, ios_base::openmode mode = ios_base::in)
- : std::ifstream(reinterpret_cast<const wchar_t *>(pstring_t<putf16_traits>(name).c_str()), mode)
- {
- }
-#else
+
+ using filename_type = std::conditional<compile_info::win32::value,
+ pstring_t<pwchar_traits>, pstring_t<putf8_traits>>::type;
+
template <typename T>
explicit ifstream(const pstring_t<T> name, ios_base::openmode mode = ios_base::in)
- : std::ifstream(pstring_t<putf8_traits>(name).c_str(), mode)
+ : std::ifstream(filename_type(name).c_str(), mode)
{
}
-#endif
};
///
@@ -289,19 +285,14 @@ public:
class ofstream : public std::ofstream
{
public:
-#ifdef _WIN32
- template <typename T>
- explicit ofstream(const pstring_t<T> name, ios_base::openmode mode = ios_base::in)
- : std::ofstream(reinterpret_cast<const wchar_t *>(pstring_t<putf16_traits>(name).c_str()), mode)
- {
- }
-#else
+ using filename_type = std::conditional<compile_info::win32::value,
+ pstring_t<pwchar_traits>, pstring_t<putf8_traits>>::type;
+
template <typename T>
explicit ofstream(const pstring_t<T> name, ios_base::openmode mode = ios_base::in)
- : std::ofstream(pstring_t<putf8_traits>(name).c_str(), mode)
+ : std::ofstream(filename_type(name).c_str(), mode)
{
}
-#endif
};