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

    <tr>
        <th>Summary</th>
        <td>
            [libc++][format] Should `formatter<vec-bool-ref>` be default constructible without `<format>` include?
        </td>
    </tr>

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

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

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

<pre>
    According to [[vector.syn]](http://eel.is/c++draft/vector.syn), `formatter` specialization for `vector<bool>::reference` should be available in `<vector>` header and (since it satisfies [*BasicFormatter*](http://eel.is/c++draft/format#formatter.requirements)) it should be also default constructible.

Repro:

```c++
#include <concepts>
#include <vector>

using R = std::vector<bool>::reference;
using F = std::formatter<R>;
static_assert(std::default_initializable<F>);
```

Expected: *correct compilation*
Got: *failed static assertion, because `<format>` include is missing*
Compiler explorer: https://godbolt.org/z/sW8dM8cvd
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVE2vqzYQ_TVmYwUROxBYsCDkUqnS29wuunwy9pBM62Bqm9z38usrG_Jxq6tWlVAiwTkzc84cWziHpxGgJvmB5MdEzP5sbP3rN3Gb7Z8IHyhvSW_Uz7qR0liF44l6QyP6cAXpjU3dz5Hkx_Cw8uz9RHhDWEdYB6BTdIR1krADYQdlxeAJ6154rCKspaTIBmMvwnuwpMiom0Ci0HgTHs1IB2MDZKER3vbGaMLfQh_eWBjAwighEs9m1or2QMVVoBa9BopjIBPe3vlvAXkGocBSMSpKWOlwlEDRUyc8ugHBRYmsOQiHsnvMxpr_IXORRBh_aEst_DWjhQuM3kXtVWz6nFo7QxUMYtaeSjM6b2fpsdeQkuxIsmb5fYfJmtD_5V3QGJ91ivUt4zhKPSughLfSjBIm74IHX3x-GvRSd3Zh5--U8CN1Xi2m_9cq-OGV3H0mP1fN2_dIXtHOC4_yu3AOrA9buTNWR77jiH7JRa-B8LYLbFY9Cjw8eBXw9mMC6SGUooQ10lgLMrh7mVDHgIW1Rugvxq-oQaAGRZeJ6DJRRLa0BylmB2uo1iUvobp7iY5e0AXtj9JtbAeWwo9JGxvENzTEyD1ydDKqN9qnxp4I626Ede73Un0r5VUlquaq4pVIoN4W-3KX8X2RJ-eaixx2XJV51heQqaHg_ZDvcynyKuC2CdYsYzzjWcX4tsjylDFeVkJImeflfpA52WVwEahTra-X0DtB52aoiy3f7hItetAu3g6MjfBB40fCWLgsbB04m34-ObLLNDrvnlU8eh2vFY39PZLhljisjuVH-tuS-0-nP6ZwE2K1sTCsvvbw9aGgH-jPZvb_sgvCu2S2uv6H1ejPc59KcyGsCyOvf5vJmj9AhtMbhYZTHY34OwAA____S5tN">