Files
gcc-reflection/libstdc++-v3
Tomasz Kamiński 09bece00d0 libstdc++: Refactor _Variadic_union so _Unitialized<T, false> is not needed [PR112591].
The changes the _Variadic_union implementation, in a way that the
_Unitialized<T, false> partial specialization for non-trivial types is not
necessary.

This is simply done by separating the specialization for __trivially_destructible
being true and false, and for the later defining an empty destructor (similarly
as it was done using concepts).

We also reduce the number of specialization of _Variadic_union, so specialization
(int, int) is reused by (string, int, int) and (int, int). This is done by
initialization __trivially_destructible with conjunction of
is_trivially_destructible_v for remaining components. This is only necessary
for non-trivial (false) specialization, as if both _First and _Rest... are
trivially destructible, then _Rest must also be.

The above change does not regress the fix r14-7259-g2d55d94e5df389 for
template depth, and both before and after the change template depth is 266.
I have added dg-options to the 87619.cc to catch future regressions.

This also add test for PR112591.

	PR libstdc++/112591

libstdc++-v3/ChangeLog:

	* include/std/variant (_Variadic_union): Separate specializations for
	for union of only trivially destructible types (true as first template
	argument). Unconditionally define destructor for _Variadic_union<false,
	_First, _Rest...>.
	* testsuite/20_util/variant/87619.cc: Add limit for the template depth.
	* testsuite/20_util/variant/112591.cc: New test.

Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>
2025-12-08 13:20:35 +01:00
..
2025-11-21 23:37:25 +08:00
2025-10-05 17:14:49 +01:00
2025-12-06 18:31:44 +08:00
2025-10-05 17:14:49 +01:00
2025-12-07 00:16:26 +00:00
2025-01-02 11:06:31 +01:00
2025-01-02 11:06:31 +01:00
2025-01-02 11:06:31 +01:00
2025-01-02 11:06:31 +01:00
2025-01-02 11:59:57 +01:00
2025-10-05 17:14:49 +01:00

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.