我被要求向某人提供我正在使用的STL版本。不幸的是,我不知道如何获得这个,并且无法在网上找到任何东西!
我正在使用Ubuntu,如果这有所不同,gcc 4.8.4。
答案 0 :(得分:4)
据我所知,没有名为STL版本的东西。有不同的C ++版本和编译器版本支持这些C ++版本。
例如,在Linux上,您将程序链接到 libstdc ++。所以(包括STL实现),这个共享库随g ++版本而变化。
在Linux上,如果你真的想知道libstdc ++的版本,你可以尝试使用readelf
并解析输出(这不是一个很好的方法)。
答案 1 :(得分:0)
我知道这个问题很旧,但是google直接将我引导到这里。我遇到了与OP相同的问题,以找出我使用的C ++编译器支持哪个STL版本。
本质上,cppreference.com的compiler support部分。下表列出了哪些编译器支持C ++ X等。就我而言,我对GCC感兴趣。我正在使用目前已于2018年1月15日发布GCC 7.3.0的Ubuntu 18.04 LTS。
基本上,我检查了编译器版本,例如:
user-home$ g++ -v
[...]
gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)
然后表中说明GCC 7.3.0支持C ++ 17(详细说明了确切支持哪些功能)。
答案 2 :(得分:0)
没有通用的 STL 版本定义,但每个 __cpp_lib 功能都有一个编号。
查看您的 <version>
标题和
https://en.cppreference.com/w/cpp/feature_test
例如
#if defined(__cpp_lib_list_remove_return_type) && \
__cpp_lib_list_remove_return_type >= 201806