如何找出STL版本

时间:2015-12-21 20:41:06

标签: c++ stl

我被要求向某人提供我正在使用的STL版本。不幸的是,我不知道如何获得这个,并且无法在网上找到任何东西!

我正在使用Ubuntu,如果这有所不同,gcc 4.8.4。

3 个答案:

答案 0 :(得分:4)

据我所知,没有名为STL版本的东西。有不同的C ++版本和编译器版本支持这些C ++版本。

例如,在Linux上,您将程序链接到 libstdc ++。所以(包括STL实现),这个共享库随g ++版本而变化。

在Linux上,如果你真的想知道libstdc ++的版本,你可以尝试使用readelf并解析输出(这不是一个很好的方法)。

答案 1 :(得分: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

答案 2 :(得分:0)

我知道这个问题很旧,但是google直接将我引导到这里。我遇到了与OP相同的问题,以找出我使用的C ++编译器支持哪个STL版本。

本质上,cppreference.comcompiler 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(详细说明了确切支持哪些功能)。

PS。还有指向特定编译器版本(在我的情况下为GCC)和特定版本(例如GCC 7.3.0)的链接。