2013-06-25 49 views
1

但是,在C++ 11中有一些很好的功能,但是我想將它們中的一部分移植到舊的C++代碼中,那麼可用的某些函數的源代碼是什麼?像std :: to_string?我只是想知道他們是如何做到的。看看如何實現C++ 11功能

謝謝!

+5

檢查標準庫實現的來源。 – jrok

+6

使用'boost',大部分新功能首先在boost中實現。看'boost :: lexical_cast'它應該接近'std :: to_string'。 – andre

+2

@andre:不,遠離它。 'boost :: lexical_cast'使用stringstreams,適用於所有重載相應運算符的類型,而'std :: to_string'只適用於基本類型並使用'sprintf'。 – Xeo

回答

4

C++ 11規範的實現細節取決於您對標準庫的選擇。例如,libc++ for LLVMlibstdc++ for GCC

您可以查看這些庫的來源以找到您所尋找的內容。請注意,實現C++ 11功能的某些代碼可能依賴於比目標更新的語言功能,因此有可能它不會是直接的複製粘貼。

此外,請記住尊重您借用的任何圖書館的許可條款。