簡體   English   中英

如何找出STL版本

[英]How to find out the STL version

我被要求向某人提供我正在使用的 STL 版本。 不幸的是,我不知道如何得到這個,也無法在網上找到任何東西!

我在 Ubuntu 上工作,如果有什么不同,gcc 4.8.4。

據我所知,沒有所謂的STL版本。 有不同的 C++ 版本和支持這些 C++ 版本的編譯器版本。

例如,在 Linux 上,您通常將程序鏈接到libstdc++.so (其中包括 STL 實現),並且此共享庫隨 g++ 版本而變化。

然而,在 Linux 上,如果你真的想知道 libstdc++ 的版本,你可以嘗試使用readelf並解析輸出(這不是一個很好的方法)。

我知道這個問題很老,但谷歌直接把我帶到了這里。 我遇到了與 OP 相同的問題,以找出我使用的 C++ 編譯器支持哪個 STL 版本。

基本上, cppreference.com有一個關於編譯器支持的部分。 該表說明哪些編譯器支持 C++X 等; 就我而言,我對 GCC 感興趣。 我在 Ubuntu 18.04 LTS 上工作,在撰寫本文時,它目前從 2018 年 1 月 15 日開始發布 GCC 7.3.0。

本質上,我檢查了編譯器版本,例如:

user-home$ g++ -v
[...]
gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)

然后表格指出 GCC 7.3.0 支持 C++17(有大量關於確切支持哪些功能的詳細信息)。

附言。 還有指向特定編譯器版本的鏈接,在我的例子中也是GCC和特定版本,例如GCC 7.3.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM