<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/68671>68671</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
`<mdspan>`: `std::extents`'s CTAD unconditionally constrains argument types to be default-constructible
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hewillk
</td>
</tr>
</table>
<pre>
https://github.com/llvm/llvm-project/blob/f5031c655ddab72bdeccf5f830a17448926254e2/libcxx/include/__mdspan/extents.h#L457-L459
..which rejects the following code:
https://godbolt.org/z/47vfGne7s
```cpp
#include <mdspan>
struct S {
S(size_t);
operator size_t() const noexcept;
};
int main() {
int* p;
std::mdspan ms(p, S{3}); // ok
std::extents exts(S{3}); // error
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUU8tyqzgQ_Zpmo4pLNC-xYOHEw2yyy-xTejRGE1mikIidfP0tbCdxcu_mVlECunW6z-mHjNHuPVEH1T1Uu0wuaQxzN9LROveSqWDeujGlKUKxBewB-71N46I2OhwAe-deP1530xz-J50Ae-WCAuyHihe5rqvKGKkaVIa0HqpBFFzmTVmKFmusSsI1gFX6dALsrdduMQTYPz8fTJykB-zplMinuBkBi8eyau4ey6oFvgO-vT03m-No9chmWnlElkZiQ3AuHK3fMx0MrSJuAD-EBaOCS5sw7wH7d8C-bF6Hfz018Vuuml8ePU1XCxZX2gyKhyvr4p9bUEzzohN7YtDcXyyMPQGKaN_pOQG2UHzaw0SzTGFmH04B2DIdfEzMBzppmtLndWh2X9_n0_rEDtL6K-4mofUJcMumm1wxmVV_sb2wZocIKCbAB_YEzX2xRj9zY5cSsfDyG_LaHEantIL_jKN5DvMX4--FzExXmLZoZUZdXrd1i6XAMhu7ahAqV7wRUgskbbis1SAahVhVuRzazHbIsch5zrngPG83QvO84KbWyoiyaQWUnA7Sus06oWtnMxvjQl0t6ibPnFTk4nn0ET0d2dkJiOsmzN15qtWyj1ByZ2OKX1GSTY66lf5tw9ffLYOa_yzO6sEmsof_tju2eB28sckGL517u3R2ltZHJuf9ciCfWHqbKLIUmCJmaJCLS3eXe4tOVjnKltn9_WKe9UXA_qz_VwAAAP__rLsuVQ">