做庫,如升壓,STL,ACE(這往往使夾雜namespace std
)包含任何特殊的編碼技術這是不可能進行編碼/通過常規的程序員使用呢?通用庫是否包含任何不能由普通用戶編寫的代碼?
在更廣泛的意義上,他們是否利用任何編譯或執行特定的實用程序,不暴露於一般的程序員?
做庫,如升壓,STL,ACE(這往往使夾雜namespace std
)包含任何特殊的編碼技術這是不可能進行編碼/通過常規的程序員使用呢?通用庫是否包含任何不能由普通用戶編寫的代碼?
在更廣泛的意義上,他們是否利用任何編譯或執行特定的實用程序,不暴露於一般的程序員?
STL(和其他)是用'純C++'編寫的。有關非常類似的問題,請參閱here。
C,而另一方面,有很多系統調用(UNIX/Windows的/等)在其標準庫文件,使一切工作。
的的C++ 0x STL還使用了一些編譯器魔法使一些新的語言特性的工作。
由於標準庫是C++規範的一部分,你的問題是不是有理有據。
例如,執行std::fstream
(或至少std::filebuf
)必須使用與操作系統相關的接口。這些算作「特定實施工具」嗎?
的底線是,該規範並沒有從語言的其餘部分分離出來的標準庫。這只是該語言的一部分,其設施可供「通常的程序員」使用。
升壓主要是寫在標準C++,但他們利用特定於平臺的功能時可能產生的性能提升,而且他們偶爾需要的功能編譯器相關的擴展。當所有平臺上的功能不可用時,通常會提到文檔。
我不瞭解ACE。
的的C++ 0x標準庫不是,不能用純C++,因爲它依賴於特定編譯器內在爲了實現(許多/最型性狀,'nullptr_t'等)。但是,由於它是語言規範的一部分,它只需要定義的行爲和接口,而不是實現,所以這完全不相關。 – ildjarn 2011-06-16 03:50:43
我一定是一直在編輯我的評論,因爲你問: - ] – ildjarn 2011-06-16 03:55:54