[Patch] Forward triviality in variant
Ville Voutilainen
ville.voutilainen@gmail.com
Thu Jun 1 15:21:00 GMT 2017
On 1 June 2017 at 18:13, Jonathan Wakely <jwakely@redhat.com> wrote:
> On 30/05/17 02:16 -0700, Tim Shen via libstdc++ wrote:
>>
>> diff --git a/libstdc++-v3/include/std/variant
>> b/libstdc++-v3/include/std/variant
>> index b9824a5182c..f81b815af09 100644
>> --- a/libstdc++-v3/include/std/variant
>> +++ b/libstdc++-v3/include/std/variant
>> @@ -290,6 +290,53 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>> __ref_cast<_Tp>(__t));
>> }
>>
>> + template<typename... _Types>
>> + struct _Traits
>> + {
>> + static constexpr bool is_default_constructible_v =
>> + is_default_constructible_v<typename _Nth_type<0,
>> _Types...>::type>;
>> + static constexpr bool is_copy_constructible_v =
>> + __and_<is_copy_constructible<_Types>...>::value;
>> + static constexpr bool is_move_constructible_v =
>> + __and_<is_move_constructible<_Types>...>::value;
>> + static constexpr bool is_copy_assignable_v =
>> + is_copy_constructible_v && is_move_constructible_v
>> + && __and_<is_copy_assignable<_Types>...>::value;
>> + static constexpr bool is_move_assignable_v =
>> + is_move_constructible_v
>> + && __and_<is_move_assignable<_Types>...>::value;
>
>
> It seems strange to me that these ones end with _v but the following
> ones don't. Could we make them all have no _v suffix?
Seems to me worth considering to rather make all of them have a _v suffix. :)
>
>> + static constexpr bool is_dtor_trivial =
>> + __and_<is_trivially_destructible<_Types>...>::value;
They all seem to be shortcuts for something::value, so it seems to me
logical to have
them all be _v.
More information about the Gcc-patches
mailing list