<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">