C++ 語言規格
C++17 去年正式成為 ISO 標準規格,主流編譯器已經部分支援新的功能,不過,實務上還是以 C++14 規格為主。若不幸使用較舊的編譯器,那麼至少找支援 C++11 的版本,日子會好過一點。
C++11 是新舊時代的分水嶺,人們常以 Modern C++ 統稱 C++11 以及之後的版本。我認為一定要知道而且學會的 C++11 功能有:
- Lambda
- Smart Pointer (std::shared_ptr, std::unique_ptr)
- Rvalue References
- Delegating Constructors
- auto
- nullptr
下一版標準規格暫定 C++20,可能加入的功能有:
- Concepts
- Transactional Memory
- Ranges
- Modules
- Coroutine
上述幾項功能會對未來的 C++ 語言帶來不小的改變,保持關注。
編譯器(Compiler)
市面上主流編譯器(主流指的是較常使用與討論,並不全然表示較優秀)以及最新版本:
- Visual C++ / Visual Studio 2017
- LLVM 5.0.1
- GCC 7.2
Visual C++
Microsoft 近年來積極推廣 C++,先前一度因為微軟力拱 C# 而被「冰」起來,但鴨子划水,C++ 這幾年可以說一吐怨氣。C++ 的關鍵人物
Herb Sutter 也任職於微軟,多少可看出微軟對於 C++ 的態度。
Windows + Visual Studio 是我最常使用的開發工具與平台。
LLVM/Clang
這個開源專案為 Xcode 的預設編譯器,這幾年快速發展,可以說是 macOS 以及 Linux 平台的最佳編譯器。這一年來在 Windows 上取得不錯的進展,微軟在這方面提供不少助力,Visual Studio 2017 也可以設定使用 LLVM 做為其編譯器。微軟近年對於 Windows 以外的平台保持開放態度,現在在 Windows 上也能開發 Android/iOS,以及 Linux 程式。
GCC
我跟他不熟,就,也不錯用的感覺。