[英]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(有大量關於確切支持哪些功能的詳細信息)。
沒有通用的 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.