您如何确定您的编译器实现了哪个版本的 C++ 标准?据我所知,以下是我所知道的标准:
据我所知,没有全面的方法可以做到这一点。如果您查看跨平台/多编译器支持库的标头,您总会发现 许多 使用编译器特定构造来确定此类内容的定义:
/*Define Microsoft Visual C++ .NET (32-bit) compiler */ #if (defined(_M_IX86) && defined(_MSC_VER) && (_MSC_VER >= 1300) ... #endif /*Define Borland 5.0 C++ (16-bit) compiler */ #if defined(__BORLANDC__) && !defined(__WIN32__) ... #endif
您可能必须自己为您使用的所有编译器进行此类定义。