C++17 added new overloads to <fstream> class templates to support opening files from wide character strings "on systems where filesystem::path::value_type is not char". This patch adds those overloads conditional on _wfopen being available, and enables them for pre-C++17 modes as well. Add support for opening file streams from wide character strings. * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN] (__basic_file<char>::open(const wchar_t*, ios_base::openmode)): Define new overload. * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN] (__basic_file<char>::open(const wchar_t*, ios_base::openmode)): Declare new overload. * configure.ac: Check for _wfopen. * crossconfig.m4: Likewise. * configure: Regenerate. * config.h.in: Regenerate. * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN] (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)): Define new overload. * include/std/fstream [_GLIBCXX_HAVE__WFOPEN] (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)): Declare new overload. [_GLIBCXX_HAVE__WFOPEN] (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode)) (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode)) (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode)) (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode)) (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode)) (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define new overloads. * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New. * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New. * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New. * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New. * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New. * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New. * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New. From-SVN: r260479
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
17_intro | Loading commit data... | |
18_support | Loading commit data... | |
19_diagnostics | Loading commit data... | |
20_util | Loading commit data... | |
21_strings | Loading commit data... | |
22_locale | Loading commit data... | |
23_containers | Loading commit data... | |
24_iterators | Loading commit data... | |
25_algorithms | Loading commit data... | |
26_numerics | Loading commit data... | |
27_io | Loading commit data... | |
28_regex | Loading commit data... | |
29_atomics | Loading commit data... | |
30_threads | Loading commit data... | |
abi | Loading commit data... | |
backward | Loading commit data... | |
config | Loading commit data... | |
data | Loading commit data... | |
decimal | Loading commit data... | |
experimental | Loading commit data... | |
ext | Loading commit data... | |
lib | Loading commit data... | |
libstdc++-abi | Loading commit data... | |
libstdc++-dg | Loading commit data... | |
libstdc++-prettyprinters | Loading commit data... | |
libstdc++-xmethods | Loading commit data... | |
performance | Loading commit data... | |
special_functions | Loading commit data... | |
tr1 | Loading commit data... | |
tr2 | Loading commit data... | |
util | Loading commit data... | |
Makefile.am | Loading commit data... | |
Makefile.in | Loading commit data... |