2012-02-05 100 views
11

英特爾編譯器是否有自己的標準庫,例如std::cout等的實現。我想爲英特爾調整所有內容。英特爾標準庫(C++)

+7

請不要說「例如」 :-) – 2012-02-05 18:49:52

+1

標準庫是_standard_,所有編譯器都有相同的標準庫接口 – Lol4t0 2012-02-05 18:52:25

+2

這個問題是一個很棒的問題。那些投下來的人將會明白它的價值。 – Shibli 2012-02-05 18:58:46

回答

20

直到8版,ICC隨Dinkumware的,即還附帶的Microsoft Visual Studio中的標準庫的實現:

英特爾C++編譯器Windows使用微軟的Visual C++頭文件,庫和鏈接。 Microsoft控制定義名稱空間的頭文件。

然而,隨着8.1版本

-cxxlib-gcc現在是C++
的STL和gcc * C++庫默認現在在鏈接C++應用程序時默認使用,而不是以前版本中使用的Dinkumware *。如果您想使用Dinkumware庫,請指定新開關-cxxlib-icc。在未來的英特爾C++編譯器版本中,將刪除對使用Dinkumware庫的支持。

通過 「STL和gcc C++庫」 一個只能假設,他們指的是的libstdC++

  • 那麼,ICC是否會附帶標準庫實現? 是的。
  • 它是否附帶英特爾實施的庫?
0

C++標準庫由C++標準定義。任何符合標準的編譯器(包括ICC)都提供了這個庫的實現,所以是的,ICC有它自己的。

但是,您不需要「調整所有內容」,因爲編碼接口在任何地方通常都是一樣的。只需編碼標準的C++和ICC就可以編譯它。

+0

clang在某些系統上沒有附帶庫,您必須單獨提供一個實現。 – 2013-01-22 00:58:58

+0

然後在這些系統上,它不是一致的編譯器。 – Puppy 2013-01-22 01:02:18

+0

@DeadMG:一旦你單獨提供了一個實現,它就是一致的。同樣,GCC不符合二進制'cc1plus'文件傳輸完成... – 2013-01-22 01:03:36