r260479 - in /trunk/libstdc++-v3: ChangeLog con...

redi@gcc.gnu.org redi@gcc.gnu.org
Mon May 21 17:18:00 GMT 2018


Author: redi
Date: Mon May 21 17:18:35 2018
New Revision: 260479

URL: https://gcc.gnu.org/viewcvs?rev=260479&root=gcc&view=rev
Log:
Add support for opening file streams from wide character strings

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.

Added:
    trunk/libstdc++-v3/testsuite/27_io/basic_filebuf/open/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/basic_filebuf/open/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/basic_fstream/cons/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/basic_fstream/cons/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/basic_fstream/open/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/basic_fstream/open/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/open/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/basic_ifstream/open/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc
    trunk/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/
    trunk/libstdc++-v3/testsuite/27_io/basic_ofstream/open/wchar_t/1.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/config.h.in
    trunk/libstdc++-v3/config/io/basic_file_stdio.cc
    trunk/libstdc++-v3/config/io/basic_file_stdio.h
    trunk/libstdc++-v3/configure
    trunk/libstdc++-v3/configure.ac
    trunk/libstdc++-v3/crossconfig.m4
    trunk/libstdc++-v3/include/bits/fstream.tcc
    trunk/libstdc++-v3/include/std/fstream



More information about the Libstdc++-cvs mailing list