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

    <tr>
        <th>Summary</th>
        <td>
            std::span with volatile non copyable type cannot be constructed
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          apache-hb
      </td>
    </tr>
</table>

<pre>
    Constructing a span containing a non-copyable type fails if volatile qualified, requires specifying a volatile overload for both copy and move constructors. [example](https://godbolt.org/z/zrxz7vT6j). Additionally the behaviour of libc++ and libstdc++ differ when deducing the size of an array type constructor if the type is volatile. [example](https://godbolt.org/z/r6W3KPGW4)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUUk1vozwQ_jXmMkoEYyDhwKFplffwXvawUs9jPARXjk1tQ5v8-pWTbtvd2x4Q0njm-dJDMZqTY-5FcxDNU0FLmnzoaaZh4s2kCuX1pX_0LqawDMm4ExDEmRwM3iUy7j5x3m0GP19IWYZ0mRlGMjaCGWH1lpKxDK8LWTMa1gIfIfDrYgJHiDMPZrzcYT53_crBetIw-gDKpwkyOpDTcPYrZ_K7IB_iFkRz4Hc6z5ZF8yRwP6U0RyEfBB4FHk9eK2_T1oeTwOM1f-H9ult_ti8Cuy08aG2S8Y6svUCaGBRPtBq_BPAjWKMGgQeBhxu7NSom_XuizThygLeJHWjWy5BtZIhorpyvyQGFQJd7Jt9U52Ty4m1u4qfzfzcT2mf5_4__nmuBXaF7qTvZUcF9taux6VDu22LqW1k21O6G_U41He0bqlRdlpUsK6q6GqkwPZbYlBIrrLDFdqsqlo2UZbsnXVe6FHXJZzJ2a-16zvSFiXHhvpJY7-rCkmIbby1CdPwGt1eBmEsV-ny0Ucspirq0Jqb4BZNMstzHpLNH-XDr1ptJ01cZnHfwZ7kGcs4nUN8iZV0swfZ_pWXStKjt4M8Cj5nx47eZg3_hIQk83nRGgccPI2uPvwIAAP__IwMH0w">