<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">