Sync from upstream.

This commit is contained in:
Rene Rivera
2024-04-10 07:58:16 -05:00
4 changed files with 245 additions and 27 deletions

View File

@ -1,32 +1,178 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="boost::variant2::detail::variant_ma_base_impl&lt;*&gt;" Inheritable="true">
<Intrinsic Name="index" Expression="$T2==1?((int)ix_-1):((int)((ix_-2)/2))"/>
<DisplayString Condition="index()==0&amp;&amp;$T2==1" Optional="true">{st_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==1&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==2&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==3&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==4&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==5&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==6&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==7&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==8&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==9&amp;&amp;$T2==1" Optional="true">{st_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==0&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==1&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==2&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==3&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==4&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==5&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==6&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==7&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==8&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<DisplayString Condition="index()==9&amp;&amp;$T2==0" Optional="true">{st_[ix_%2].rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.rest_.first_} ({index()})</DisplayString>
<Expand>
<Item Name="[index]">index()</Item>
<Item Name="ix_">ix_</Item>
</Expand>
</Type>
<Type Name="boost::variant2::detail::variant_base_impl&lt;*,1,*&gt;">
<Intrinsic Name="index" Expression="(int)ix_ - 1"/>
<DisplayString Condition="index() == 0" Optional="true">{{ index=0, value={*($T2*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 1" Optional="true">{{ index=1, value={*($T3*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 2" Optional="true">{{ index=2, value={*($T4*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 3" Optional="true">{{ index=3, value={*($T5*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 4" Optional="true">{{ index=4, value={*($T6*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 5" Optional="true">{{ index=5, value={*($T7*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 6" Optional="true">{{ index=6, value={*($T8*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 7" Optional="true">{{ index=7, value={*($T9*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 8" Optional="true">{{ index=8, value={*($T10*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 9" Optional="true">{{ index=9, value={*($T11*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 10" Optional="true">{{ index=10, value={*($T12*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 11" Optional="true">{{ index=11, value={*($T13*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 12" Optional="true">{{ index=12, value={*($T14*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 13" Optional="true">{{ index=13, value={*($T15*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 14" Optional="true">{{ index=14, value={*($T16*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 15" Optional="true">{{ index=15, value={*($T17*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 16" Optional="true">{{ index=16, value={*($T18*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 17" Optional="true">{{ index=17, value={*($T19*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 18" Optional="true">{{ index=18, value={*($T20*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 19" Optional="true">{{ index=19, value={*($T21*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 20" Optional="true">{{ index=10, value={*($T22*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 21" Optional="true">{{ index=21, value={*($T23*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 22" Optional="true">{{ index=22, value={*($T24*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 23" Optional="true">{{ index=23, value={*($T25*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 24" Optional="true">{{ index=24, value={*($T26*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 25" Optional="true">{{ index=25, value={*($T27*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 26" Optional="true">{{ index=26, value={*($T28*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 27" Optional="true">{{ index=27, value={*($T29*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 28" Optional="true">{{ index=28, value={*($T30*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 29" Optional="true">{{ index=29, value={*($T31*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 30" Optional="true">{{ index=30, value={*($T32*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 31" Optional="true">{{ index=31, value={*($T33*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 32" Optional="true">{{ index=32, value={*($T34*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 33" Optional="true">{{ index=33, value={*($T35*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 34" Optional="true">{{ index=34, value={*($T36*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 35" Optional="true">{{ index=35, value={*($T37*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 36" Optional="true">{{ index=36, value={*($T38*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 37" Optional="true">{{ index=37, value={*($T39*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 38" Optional="true">{{ index=38, value={*($T40*)&amp;st_} }}</DisplayString>
<DisplayString Condition="index() == 39" Optional="true">{{ index=39, value={*($T41*)&amp;st_} }}</DisplayString>
<Expand>
<Item Name="index">index()</Item>
<Item Name="[value]" Condition="index() == 0" Optional="true">*($T2*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 1" Optional="true">*($T3*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 2" Optional="true">*($T4*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 3" Optional="true">*($T5*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 4" Optional="true">*($T6*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 5" Optional="true">*($T7*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 6" Optional="true">*($T8*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 7" Optional="true">*($T9*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 8" Optional="true">*($T10*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 9" Optional="true">*($T11*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 10" Optional="true">*($T12*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 11" Optional="true">*($T13*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 12" Optional="true">*($T14*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 13" Optional="true">*($T15*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 14" Optional="true">*($T16*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 15" Optional="true">*($T17*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 16" Optional="true">*($T18*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 17" Optional="true">*($T19*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 18" Optional="true">*($T20*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 19" Optional="true">*($T21*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 20" Optional="true">*($T22*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 21" Optional="true">*($T23*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 22" Optional="true">*($T24*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 23" Optional="true">*($T25*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 24" Optional="true">*($T26*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 25" Optional="true">*($T27*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 26" Optional="true">*($T28*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 27" Optional="true">*($T29*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 28" Optional="true">*($T30*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 29" Optional="true">*($T31*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 30" Optional="true">*($T32*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 31" Optional="true">*($T33*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 32" Optional="true">*($T34*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 33" Optional="true">*($T35*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 34" Optional="true">*($T36*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 35" Optional="true">*($T37*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 36" Optional="true">*($T38*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 37" Optional="true">*($T39*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 38" Optional="true">*($T40*)&amp;st_</Item>
<Item Name="[value]" Condition="index() == 39" Optional="true">*($T41*)&amp;st_</Item>
</Expand>
</Type>
<Type Name="boost::variant2::detail::variant_base_impl&lt;*,0,*&gt;">
<Intrinsic Name="index" Expression="(int)((ix_-2)/2)"/>
<DisplayString Condition="index() == 0" Optional="true">{{ index=0, value={*($T2*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 1" Optional="true">{{ index=1, value={*($T3*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 2" Optional="true">{{ index=2, value={*($T4*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 3" Optional="true">{{ index=3, value={*($T5*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 4" Optional="true">{{ index=4, value={*($T6*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 5" Optional="true">{{ index=5, value={*($T7*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 6" Optional="true">{{ index=6, value={*($T8*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 7" Optional="true">{{ index=7, value={*($T9*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 8" Optional="true">{{ index=8, value={*($T10*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 9" Optional="true">{{ index=9, value={*($T11*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 10" Optional="true">{{ index=10, value={*($T12*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 11" Optional="true">{{ index=11, value={*($T13*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 12" Optional="true">{{ index=12, value={*($T14*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 13" Optional="true">{{ index=13, value={*($T15*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 14" Optional="true">{{ index=14, value={*($T16*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 15" Optional="true">{{ index=15, value={*($T17*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 16" Optional="true">{{ index=16, value={*($T18*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 17" Optional="true">{{ index=17, value={*($T19*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 18" Optional="true">{{ index=18, value={*($T20*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 19" Optional="true">{{ index=19, value={*($T21*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 20" Optional="true">{{ index=20, value={*($T22*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 21" Optional="true">{{ index=21, value={*($T23*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 22" Optional="true">{{ index=22, value={*($T24*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 23" Optional="true">{{ index=23, value={*($T25*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 24" Optional="true">{{ index=24, value={*($T26*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 25" Optional="true">{{ index=25, value={*($T27*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 26" Optional="true">{{ index=26, value={*($T28*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 27" Optional="true">{{ index=27, value={*($T29*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 28" Optional="true">{{ index=28, value={*($T30*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 29" Optional="true">{{ index=29, value={*($T31*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 30" Optional="true">{{ index=30, value={*($T32*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 31" Optional="true">{{ index=31, value={*($T33*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 32" Optional="true">{{ index=32, value={*($T34*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 33" Optional="true">{{ index=33, value={*($T35*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 34" Optional="true">{{ index=34, value={*($T36*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 35" Optional="true">{{ index=35, value={*($T37*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 36" Optional="true">{{ index=36, value={*($T38*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 37" Optional="true">{{ index=37, value={*($T39*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 38" Optional="true">{{ index=38, value={*($T40*)&amp;st_[ix_%2]} }}</DisplayString>
<DisplayString Condition="index() == 39" Optional="true">{{ index=39, value={*($T41*)&amp;st_[ix_%2]} }}</DisplayString>
<Expand>
<Item Name="index">index()</Item>
<Item Name="[value]" Condition="index() == 0" Optional="true">*($T2*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 1" Optional="true">*($T3*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 2" Optional="true">*($T4*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 3" Optional="true">*($T5*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 4" Optional="true">*($T6*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 5" Optional="true">*($T7*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 6" Optional="true">*($T8*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 7" Optional="true">*($T9*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 8" Optional="true">*($T10*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 9" Optional="true">*($T11*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 10" Optional="true">*($T12*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 11" Optional="true">*($T13*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 12" Optional="true">*($T14*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 13" Optional="true">*($T15*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 14" Optional="true">*($T16*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 15" Optional="true">*($T17*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 16" Optional="true">*($T18*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 17" Optional="true">*($T19*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 18" Optional="true">*($T20*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 19" Optional="true">*($T21*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 20" Optional="true">*($T22*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 21" Optional="true">*($T23*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 22" Optional="true">*($T24*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 23" Optional="true">*($T25*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 24" Optional="true">*($T26*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 25" Optional="true">*($T27*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 26" Optional="true">*($T28*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 27" Optional="true">*($T29*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 28" Optional="true">*($T30*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 29" Optional="true">*($T31*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 30" Optional="true">*($T32*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 31" Optional="true">*($T33*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 32" Optional="true">*($T34*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 33" Optional="true">*($T35*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 34" Optional="true">*($T36*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 35" Optional="true">*($T37*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 36" Optional="true">*($T38*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 37" Optional="true">*($T39*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 38" Optional="true">*($T40*)&amp;st_[ix_%2]</Item>
<Item Name="[value]" Condition="index() == 39" Optional="true">*($T41*)&amp;st_[ix_%2]</Item>
</Expand>
</Type>
</AutoVisualizer>

View File

@ -1634,7 +1634,17 @@ public:
template<class U,
class Ud = typename std::decay<U>::type,
class E1 = typename std::enable_if< !std::is_same<Ud, variant>::value && !std::is_base_of<variant, Ud>::value && !detail::is_in_place_index<Ud>::value && !detail::is_in_place_type<Ud>::value >::type,
#if BOOST_WORKAROUND(BOOST_MSVC, < 1940)
class V = mp11::mp_apply_q< mp11::mp_bind_front<detail::resolve_overload_type, U&&>, variant >,
#else
class V = detail::resolve_overload_type<U&&, T...>,
#endif
class E2 = typename std::enable_if<std::is_constructible<V, U&&>::value>::type
>
constexpr variant( U&& u )

View File

@ -137,3 +137,5 @@ run variant_json_value_from.cpp : : : $(JSON) ;
run variant_json_value_to.cpp : : : $(JSON) ;
compile variant_uses_double_storage.cpp ;
run variant_derived_construct2.cpp ;

View File

@ -0,0 +1,60 @@
// Copyright 2024 Peter Dimov.
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt
#include <boost/variant2/variant.hpp>
#include <boost/core/lightweight_test.hpp>
struct expr: boost::variant2::variant<bool, int, double>
{
using variant::variant;
};
int main()
{
using boost::variant2::get;
{
expr v{ true };
BOOST_TEST_EQ( v.index(), 0 );
BOOST_TEST_EQ( get<0>(v), true );
}
{
expr v{ 2 };
BOOST_TEST_EQ( v.index(), 1 );
BOOST_TEST_EQ( get<1>(v), 2 );
}
{
expr v{ 3.0 };
BOOST_TEST_EQ( v.index(), 2 );
BOOST_TEST_EQ( get<2>(v), 3.0 );
}
{
expr v( true );
BOOST_TEST_EQ( v.index(), 0 );
BOOST_TEST_EQ( get<0>(v), true );
}
{
expr v( 2 );
BOOST_TEST_EQ( v.index(), 1 );
BOOST_TEST_EQ( get<1>(v), 2 );
}
{
expr v( 3.0 );
BOOST_TEST_EQ( v.index(), 2 );
BOOST_TEST_EQ( get<2>(v), 3.0 );
}
return boost::report_errors();
}