About Visual C++

快速摘要:Visual C++(MSVC)是微軟提供的 C++ 編譯器與工具鏈,隨 Visual Studio 演進。最新版本(Visual Studio 2022 / MSVC 19.39)全面支援 C++20 與 C++23 的大部分特性,並透過 CMake 與 vcpkg 提供跨平台開發能力。MSVC 在 Windows 上整合度最佳,但與 GCC、Clang 相比,跨平台靈活度略低。

🕰 演進各版本特色

  • Visual C++ 6.0 (1998):經典版本,支援 MFC,廣泛用於 Windows 桌面程式。
  • Visual Studio .NET 2003:引入 .NET Framework 整合,但 C++ 標準支援有限。
  • Visual Studio 2010–2015:逐步改善 C++11 支援,加入並行運算 (Concurrency Runtime)。
  • Visual Studio 2017:開始支援 C++14/17,改善編譯器錯誤訊息,提供 std::filesystem。
  • Visual Studio 2019:支援 C++20 部分特性(如 Concepts、Ranges),編譯器錯誤提示更清晰。
  • Visual Studio 2022:全面 64 位 IDE,MSVC 編譯器版本 19.3x,支援 C++20/23 大部分語言與標準庫特性。

🌟 最新版本特色 (Visual Studio 2022 / MSVC 19.39)

  • 完整支援 C++20 與 C++23:包含 Concepts、Modules、Coroutines、Ranges。
  • 改進編譯速度:透過 預編譯標頭 與 增量編譯。
  • 工具鏈整合:支援 CMake、vcpkg、WSL2,方便跨平台。
  • 診斷與分析:內建 AddressSanitizer、程式碼分析工具。

⚙️ 最新 C++ 編譯器特色與配置範例

  • 範例程式 (Concepts):
include <concepts>
include <iostream>
template <std::integral T>
T add(T a, T b) { return a + b; }
int main() {
    std::cout << add(3, 5) << "\n";  // OK
    // std::cout << add(3.2, 5.1);   // 編譯錯誤
}
  • 配置方式 (MSVC 編譯器)
    在 Visual Studio 專案屬性 → C/C++ → 語言 → 設定為 /std:c++20 或 /std:c++latest。
    命令列編譯:
  • cl /std:c++20 main.cpp
    

---
🌍 跨平台支援與配置範例
- CMake 整合:Visual Studio 2022 原生支援 CMake。  
  範例 CMakeLists.txt:
  ```cmake
  cmakeminimumrequired(VERSION 3.20)
  project(HelloCXX)
  add_executable(hello main.cpp)

在 Visual Studio 開啟資料夾即可直接編譯。

  • WSL2 / Linux 編譯:可在 Visual Studio 使用 Clang/GCC 透過 WSL2。
    設定:工具 → 選項 → Linux 開發,選擇遠端工具鏈。
  • vcpkg:跨平台套件管理器,安裝第三方庫:
    vcpkg install boost
    
    ⚖️ MSVC 與其他編譯器比較
編譯器 優勢 劣勢
MSVC (Visual C++) Windows 整合最佳、IDE 支援、診斷工具強大 跨平台彈性較低
GCC Linux/Unix 主流、跨平台廣泛 Windows 整合度差
Clang/LLVM 錯誤訊息清晰、跨平台佳、支援最新標準快 Windows 整合度不如 MSVC

👉 總結:Visual C++ 最新版本在 Windows 上是最完整的 C++ 開發環境,支援最新標準並提供跨平台工具鏈,但若專案主要針對 Linux/macOS,Clang/GCC 仍更靈活。

Also See

File13FileLast Modified
模組化開發-用 CMake + Conan 封裝並重用 C++ 函式庫模組化開發-用 CMake + Conan 封裝並重用 C++ 函式庫8:20 PM - December 06, 2025
模組化開發-C++的模組化開發架構模組化開發-C++的模組化開發架構8:20 PM - December 06, 2025
推薦網站推薦網站8:20 PM - December 06, 2025
MISRA C++類似針對某應用規範的標準MISRA C++類似針對某應用規範的標準8:20 PM - December 06, 2025
MISRA C++MISRA C++8:20 PM - December 06, 2025
Design PatternDesign Pattern8:20 PM - December 06, 2025
CPPCPP8:20 PM - December 06, 2025
C++的演進與比較C++的演進與比較8:20 PM - December 06, 2025
C++23C++238:20 PM - December 06, 2025
C++20C++208:20 PM - December 06, 2025
C++17C++178:20 PM - December 06, 2025
C++14C++148:20 PM - December 06, 2025
C++11C++118:20 PM - December 06, 2025