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

    <tr>
        <th>Summary</th>
        <td>
            libcxx: stderr/stdout/stdin not exported from std.compat
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

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

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

<pre>
    stderr/stdout/stdin are not exported as part of the std.compat module. But I very much expected the below code to compile without issue.

```c++
//#include <cstdio> // Do I really need to include this just to get at `stderr`?
import std.compat;

auto main() -> int {
        std::println(stderr, "I expected this to work.");
        return 0;
}
```

I believe this is because they are technically defined to be macros. But in both glibc and musl they are actually `extern FILE*`. So maybe there is a way to provide them on a best-effort basis?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U82O6yoMfhqysRoRaNJmkUU7nUqV7u4-ARCnYS4JFZj-vP0VaedMz5GOhPIDtr8fbBWjPc-IHav3rD4UKtHoQ0d-0h7HCUOhff_oIvUYAhPHSL1P9PywM6iAMHsCvF98IOxBRbioQOAHoBEhUl8aP10UweT75LCEfSI4wRXDA6ZkxpyKJqfmeI3O38D4HoE85EzrEG6WRp8IbIwJS8YPjO9ez4Y_l2Fin9dzVxyXJe1sXOoRmPwwmbBn8hOep3DwcIKAyrkHzJjxPXzH02gjfKVIefOMBIqANfzlQsOZPD6R7JR1v8lkcv_OTyXyMCk7M7FlooVVJmBnArb5FddG6pncMbm7BDuTy7Hffn8AE-L07pGNmdPNh_9KJgQT7RtiG5BSmIH_7G0Ofxj1zu6U_bZ4fQm2ETQalWL-x8dyuYRmnK1ZXOpxsPPTKI0wKRN8fN6nnUF7GuHsrDag5h6mFN1PFWUoLSVYw_FOGGY4nv75ZCLzKuHf7NFDL7ABMw8FN_XIQJfgr3a5EZzAz6BAY6QVDkP2XatoI5PHou9k38pWFdhVG1lxwbe1LMYOa6mHptrKSm22dTMMtV63mqtKbnkrqm1hO8HFuqr4Rki-kbKsmsa0wzAYsZZtvRFszXFS1pXOXafSh3OxdGFXVbXctoVTGl1cpkeIrP7Vh0LkaQpdzlrpdI5szZ2NFH_qkCWHXc6535ncwd9m7Lf5GoKf3tqtSMF1I9El5g5aGvtsaUw6nzNxzGCv1-oS_BeaXHdREJk4vkRcO_F_AAAA____iEfl">