Subject: Re: [std-proposals] type_traits and similar types
Date: 2020-01-08 19:02:43
On 07/01/2020 00:40, Arthur O'Dwyer wrote:
> On Sun, Jan 5, 2020 at 8:24 PM language.lawyer--- via Std-Proposals <
> std-proposals_at_[hidden]> wrote:
>> Why not to add a trait to check if two types are similar?
> That would be something like this, yes?
> What use would that be? Nothing in the standard library (or in any
> user-defined library I can think of) depends on being able to tell if two
> types are "similar," does it?
Well, unique_ptr<T, D> could benefit from such a trait, see http://wg21.link/n4042 and http://wg21.link/n4089
However, they managed to live without such a trait, relying on is_convertible.
And indeed, prvalue expression convertibility relies on type similarity https://timsong-cpp.github.io/cppwp/n4659/conv.qual#3
I think it would be valid to define is_similar_v as
template<typename T, typename U>
inline constexpr bool is_similar_v = std::is_scalar_v<T> && std::is_scalar_v<U> && (std::is_convertible_v<T, U> || std::is_convertible_v<U, T>);
STD-PROPOSALS list run by firstname.lastname@example.org
Standard Proposals Archives on Google Groups