2011-06-16 36 views

回答

1

STL(和其他)是用'純C++'編寫的。有關非常類似的問題,請參閱here

C,而另一方面,有很多系統調用(UNIX/Windows的/等)在其標準庫文件,使一切工作。

的的C++ 0x STL還使用了一些編譯器魔法使一些新的語言特性的工作。

+0

的的C++ 0x標準庫不是,不能用純C++,因爲它依賴於特定編譯器內在爲了實現(許多/最型性狀,'nullptr_t'等)。但是,由於它是語言規範的一部分,它只需要定義的行爲和接口,而不是實現,所以這完全不相關。 – ildjarn 2011-06-16 03:50:43

+0

我一定是一直在編輯我的評論,因爲你問: - ] – ildjarn 2011-06-16 03:55:54

1

這些都寫在每個人都可以使用的相同的代碼。但是,代碼通常很難閱讀(至少對我而言),因爲它們竭盡全力確保庫的一般性。 Here是STL的sgi實現。瀏覽它並親自查看。

+0

我認爲python可能會實現他們的一些庫在C.同樣的Java。儘管如此,如果你真的想這樣做,那麼一般程序員也可以使用相同的工具。 – jpm 2011-06-16 03:30:16

1

由於標準庫是C++規範的一部分,你的問題是不是有理有據。

例如,執行std::fstream(或至少std::filebuf)必須使用與操作系統相關的接口。這些算作「特定實施工具」嗎?

的底線是,該規範並沒有從語言的其餘部分分離出來的標準庫。這只是該語言的一部分,其設施可供「通常的程序員」使用。

升壓主要是寫在標準C++,但他們利用特定於平臺的功能時可能產生的性能提升,而且他們偶爾需要的功能編譯器相關的擴展。當所有平臺上的功能不可用時,通常會提到文檔。

我不瞭解ACE。

相關問題