<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54387>54387</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            std::is_constructible not working with aggregates
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          JVApen
      </td>
    </tr>
</table>

<pre>
    ````
#include <type_traits>

namespace
{
    struct S
    {
        int a{};
        double b{};
    };

    auto f()
    {
        return S{0, 0.};
    }

    static_assert(std::is_constructible_v<S, int, double>);
}
````
https://compiler-explorer.com/z/fqr1r6EjW

Result:
````
<source>:16:5: error: static_assert failed due to requirement 'std::is_constructible_v<(anonymous namespace)::S, int, double>'
    static_assert(std::is_constructible_v<S, int, double>);
    ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
````

Expected: As I can construct S with an int, double, as done in f, I would expect std::is_constructible_v to return `true`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFVEtv2zAM_jXyRajhSI6dHHzIa8B2XIDtGMg246hTJFePttmvH-WkTdI1uQ0TZD1Iifz4kXJt2kNFiuzcsyXJZoRxqRsVWqCEL_yhh423QnpH-Op0Yhi12IPrRQMnYTk_Lig2521oPF2fJVfq2KT2VERpuST8g641oVZA60_Ul_uzVARv6JawCWHTOz4t-GA1wirnGWELmqWfmf9g23nhZbMRzoH16ML5lvAZduk2jdHHUCXi3TwjX-toF2OL0zGMSBuiegf97uEv5nfe9y7aZl-wN2bfSwX2AV57ZSzYFCUo_43f9smObLF6_HkJ9ju4oHy8f8M-wnMm2GaAxGejAocxfhSsNTYurmKlW4H-W9oGoEivhacgLewBE0dYeZ8G5Eloow97Exw9V0rkId65wVL5z1gfcjte0ctGytV_6LdyM4yr1x4aDzFUOnP0K22Epu_h0jV9kX5HUXYdK66Ew40GVMR3sMCrLyaolsJgkd6h75jb4WEgGlQATmnSVryd8qlIvPQKqpsGqDYefdlfUncneF1noRMeXBKsqq6rusMToT6VslLPb9NDb80jIsWtdC6Aw8U455My2VWsyHPBWdFmHMpaAOfTHCY8a7cl5E2TJ0rUoFxFxnMyXiayYhljGR-NR5xNWZYWoxFss5YVk21eTkCQPIM91nYaHafGdomtBgx16BwqlXTenZVYg7LTAG_28WezM7b69mPWg04GtNUA9Q8Ng4O7">