https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95545
Bug ID: 95545 Summary: thread:: conflicts with std::thread Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: dje at gcc dot gnu.org Target Milestone: --- AIX, MSVC, and possibly other systems, implemented their own definition of thread different from Posix threads. libstdc++ <thread> header eventually includes <gthr-posix.h>, which includes the system <pthread.h> header, which, on AIX, eventually includes <sys/thread.h> The AIX header nicely does #ifdef __cplusplus extern "C" { #endif struct thread { ... } which creates an ambiguity when a user references thread:: without std::thread. LLVM C++ has a pattern that helps to avoid the conflict because of a similar problem for MSVC: namespace llvm { typedef std::thread thread; } llvm/include/llvm/Support/thread.h Would libstdc++ consider a similar solution?