<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54291>54291</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Unneeded requirement destructor?
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
JVApen
</td>
</tr>
</table>
<pre>
````
// clang++ -std=c++17 -stdlib=libc++ t.cpp
#include <memory>
struct ForwardDeclared;
class A {
public:
explicit A();
~A();
private:
std::unique_ptr<ForwardDeclared> m_ptr1 = nullptr; // not ok
std::unique_ptr<ForwardDeclared> m_ptr2 {std::unique_ptr<ForwardDeclared>{}}; // not ok
std::unique_ptr<ForwardDeclared> m_ptr3 {nullptr}; // ok
std::unique_ptr<ForwardDeclared> m_ptr4; // ok
};
int main() {
A a;
return 0;
}
````
https://godbolt.org/z/58aGYb
The code compiles with MSVC (/permissive-) and fails to compile with GCC/Clang for m_ptr1 and m_ptr2.
After checking on [stack overflow](https://stackoverflow.com/a/71402928/2466431), I got conflicted answers on which compiler is wrong here, the one quoting the standard indicates the problem is with clang.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVE1z2yAQ_TXShYlHRpIdHXRw7DjTzvTUj5meOghWFjUCBZDd9Nd3wVYcJz10JmUQkpbdt2_hQWPEU50sskvPNkm2SugWO-GK6V1C77CTG-dFkm_46Xe-jAYlG7TheDYTP-PDMGHkUnM1CiBJvu6hN_Ypye_Pk3F03o7ck62xR2bFBjCfBcxy99IJjc6RFUmWZzPBNoyNkjzJVxdTaPBrQLP0BLPfJrR6hpockuX936YGKw_Mwxu8WPMK-6jl4wg_Bm-xljd870kfpuZY6IboUanodxcTnlZSG0_M_j3gNCzAv4aEtVpuQv_PLPLAYqrwNbzZk_dgF2e0S3vGPeshJnypDak96ZnUpy29lsiKsKs9tuBHq0l2gUC408cb_XfeDy5QjwR2RjRG-ZmxeBi2v_Epb9nD9-Ylky8dEG5EGPpBKnDkKH1HPn3-tiaR3XYA20vn5AFuAlemBWmZVI54MwWdYh7Wa3Rfh7NHWmMnbYWAkxJmLxOvWg-W8A74XmKA0SQpUSeM74k5gG2VOSblBilc1xQ9JocZ5kcbw2c5LzJaRcK0WCyKfB7OCl2TD2SH6uFGt3jCPAjk445gXch47CTvpiIskVi8NUimAwsh1uPiGA3kcTQ-kAz_SEALlAGRWkiOh89F82BNo6CPGGEx4hV0VXAq6lxUecVSL72C-qvWAAIJWXgcpYUeUBQCTneLQcFt09Gq-tWWIvbYnOtW6jC9bjD_T-Aef3GvRnBhswtazdOuZs1clJBXOeO8FaKsRFuULOOUc9pW2TxVrAHlalz_hFINRxIh8Bs3IJU1zSjN8qzKlnRBy9ltmZdFwXle8IZniyopMkAtq1ngEbSW2jpSasadw0klnXeXSbwU5Q4rj-kQn42-M7b--G01gE5j5joy_wMlxMBY">