gcc/libstdc++-v3/include/std
Jonathan Wakely a219139e98 libstdc++: Implement std::ios_base::noreplace for C++23 [PR59769]
This implements my P2467R0 proposal to support opening an fstream in
exclusive mode. The new constant is also supported pre-C++23 as
std::ios_base::__noreplace.

This proposal hasn't been approved for C++23 yet, but I am confident it
will be, as this is restoring a feture found in pre-ISO C++ iostreams
implementations (and still present in the MSVC library as _Noreplace).
If the proposal fails for C++23 we can remove the ios::noreplace
name and just keep ios::__noreplace as an extension.

libstdc++-v3/ChangeLog:

	PR libstdc++/59769
	* config/io/basic_file_stdio.cc (fopen_mode): Add support for
	exclusive mode.
	* include/bits/ios_base.h (_S_noreplace): Define new enumerator.
	(ios_base::__noreplace): Define.
	(ios_base::noreplace): Define for C++23.
	* include/std/version (__cpp_lib_ios_noreplace): Define.
	* testsuite/27_io/basic_ofstream/open/char/noreplace.cc: New test.
	* testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: New test.
2021-12-09 22:59:48 +00:00
..
algorithm
any libstdc++: Constrain std::make_any [PR102894] 2021-10-22 23:09:54 +01:00
array libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
atomic
barrier
bit libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
bitset
charconv
chrono libstdc++: Implement ostream insertion for chrono::duration 2021-10-08 12:19:19 +01:00
codecvt
complex
concepts
condition_variable libstdc++: Allow std::condition_variable waits to be cancelled [PR103382] 2021-12-09 22:58:19 +00:00
coroutine
deque libstdc++: [_GLIBCXX_DEBUG] Enhance std::erase_if for vector/deque 2021-12-08 19:09:47 +01:00
execution
filesystem
forward_list
fstream
functional libstdc++: Add Doxygen comments to contents of <functional> 2021-10-21 22:24:53 +01:00
future
iomanip
ios
iosfwd
iostream
istream
iterator
latch
limits
list
locale
map libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
memory
memory_resource libstdc++: Make pmr::memory_resource::allocate implicitly create objects 2021-11-11 18:16:17 +00:00
mutex libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
numbers
numeric
optional libstdc++: Remove constraints from std::optional monadic ops [PR102863] 2021-10-21 01:23:22 +01:00
ostream libstdc++: Define deleted wchar_t overloads unconditionally [PR 98725] 2021-10-09 00:57:50 +01:00
queue
random
ranges libstdc++: Implement P2432R1 changes for views::istream 2021-10-21 11:55:19 -04:00
ratio
regex
scoped_allocator
semaphore
set libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
shared_mutex libstdc++: Move C++14 <chrono> components to new <bits/chrono.h> header 2021-10-07 21:12:32 +01:00
source_location
span libstdc++: Reorder constraints on std::span::span(Range&&) constructor. 2021-11-01 21:01:31 +00:00
spanstream libstdc++: Implement std::spanstream for C++23 2021-11-13 11:45:31 +00:00
sstream
stack
stdexcept
stop_token
streambuf
string libstdc++: Implement constexpr std::basic_string for C++20 2021-11-16 16:43:20 +00:00
string_view libstdc++: Begin lifetime of chars in constexpr std::string [PR103295] 2021-11-19 18:15:15 +00:00
syncstream
system_error
thread libstdc++: Make std::jthread support pointers to member functions [PR 100612] 2021-10-01 20:36:55 +01:00
tuple libstdc++: Remove workaround for FE bug in std::tuple [PR96592] 2021-11-26 22:26:08 +00:00
type_traits libstdc++: Define std::__is_constant_evaluated() for internal use 2021-12-01 15:00:33 +00:00
typeindex
unordered_map libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
unordered_set libstdc++: [_GLIBCXX_DEBUG] Reduce performance impact on std::erase_if 2021-11-20 16:11:22 +01:00
utility
valarray libstdc++: Add some noexcept to std::valarray 2021-11-03 00:16:01 +00:00
variant libstdc++: Consolidate duplicate metaprogramming utilities 2021-11-04 18:14:50 +00:00
vector libstdc++: [_GLIBCXX_DEBUG] Enhance std::erase_if for vector/deque 2021-12-08 19:09:47 +01:00
version libstdc++: Implement std::ios_base::noreplace for C++23 [PR59769] 2021-12-09 22:59:48 +00:00