2014-02-24 26 views
1

昨天我收到了一個有趣的問題。我在Linux上有一些C++代碼,我可能會給一個Android團隊。他們問我是否可以省略STL的使用。這導致瞭如何在C++代碼中檢測STL的使用的通用問題?在C++中檢測STL的使用情況

我最好的解決方案,最有可能不是最好的解決方案是搜索下面的頭文件,刪除它們並編譯。

#include <vector> 
#include <deque> 
#include <list> 
#include <map> 
#include <set> 
#include <stack> 
#include <queue> 
#include <iterator> 
#include <iterator> 
#include <algorithm> 
#include <numeric> 
#include <numeric> 
#include <functional> 
#include <utility> 
#include <memory> 

更好的解決方案?

+1

你可以嘗試在你的項目中搜索'std'。要麼你會發現'using namespace std',在這種情況下,刪除這些語句會導致stl類型的任何聲明出錯,或者你會發現顯式的'std :: class'變量聲明。 – computerfreaker

+1

「STL」的含義尚不清楚。這是一個不完整的標題列表。你是否只想使用c風格的頭文件,比如'cstdio'而不是'iostream',即使它不在列表中?爲什麼你需要事後刪除這些標題?爲什麼不禁止程序員使用它並檢查代碼?如果代碼在沒有頭文件的情況下編譯失敗,那麼只有刪除頭文件纔有用? – 2014-02-24 06:27:00

+0

他們解釋了他們對STL的含義嗎?它是來自STL的C++標準庫的子集嗎?這是真正的STL嗎?或者它是C++標準庫? – juanchopanza

回答

2

用gcc編譯你的代碼(不是g ++),默認情況下它不與C++標準庫鏈接。

相關問題