Visual Studio 2022 17.5

微軟 Visual Studio 2022 第五次大更新來了~官方的公告是《Visual Studio 2022 – 17.5 Released》、直接和 C++ 相關的,則是《Visual Studio 2022 version 17.5 for C++ Developers》這篇;release note 的更新細節(頁面)也已經更新了。

這次官方的更新重點包括了(執行後列出來的):

  • 多合一式搜尋
  • 效能增強功能
  • 輕鬆將容器發佈至 Azure Container Apps !
  • ASP.NET Core – 開發人員通道
  • InteIIiCode – C# 建議的內嵌差異檢視
  • Unreal Engine Blueprints 支援
  • 編輯Markdown 檔案
  • 快速新增檔案
  • 文字視覺化檢視增強功能
  • 序列監視器
  • 複製及展開巨集展開
  • 程式碼涵蓋範圍篩選
  • 協助工具檢查程式

閱讀更多»

廣告

Visual C++ OpenMP 更新:支援 3.1 的 atomic

自從在 2021 年、Visual Studio 2019 開始引入 OpenMP LLVM 後,微軟終於開始有慢慢地開始針對 OpenMP 的標準支援進行更新了。

這次官方的公告是《MSVC OpenMP Update》,就是在介紹 Visual Studio 2022 17.4 中針對 C++ OpenMP 的更新了!官方的說法,是他們正在讓 Visual C++ 更符合 OpenMP 3.1 的標準。

這次更新的內容主要是:

  • 支援 OpenMP 3.1 的 #pragma omp atomic
  • 支援 min / max reduction
  • 支援指標型變數的 #pragma omp for

閱讀更多»

Windows 環境的 libcurl https 支援

cURL 是一個很知名的開源專案(官網),他主要的功能是用來存取包含 Http、FTP、SMTP 等在內通訊協定的命令提示字元工具,在 Linux 環境算是相當常用到的。

而同時,他也有 libcurl 這個 C 語言的函式庫(官網),讓開發者可以透過它還存取網路上的 資源。

而 Heresy 這次會要用他,主要是要去下載 https 的檔案,但是一開始用 CMake 來建置的時候,卻發現真的去開 https 的時候,卻出現了不支援的錯誤…

curl_easy_perform() failed: Unsupported protocol

閱讀更多»

Visual Studio 2022 17.2 正式推出

微軟在去年底正式推出了第一款原生 64 位元的 Visual Studio 2022(17.0)後,其實已經有一次比較大的更新、17.1 了~

不過比較可惜的是,Heresy 這邊的程式因為踩到 Lambda + OpenMP 的問題,所以一直沒能把主要的建置環境切換到 Visual Studio 2022…

而現在,微軟終於推出解決該問題的 Visual Studio 2022 17.2 了!
官方的介紹是《Visual Studio 2022 17.2 is now available!》,比較完整個變化則可以參考官方的 Release Note

閱讀更多»

Visual C++ 終於正式支援 OpenMP 3 的 task 了

微軟的 Visual C++ 這幾年雖然對於 C++ 新的標準支援的算是相當積極,但是對於 OpenMP 的支援一直以來都很糟糕,儘管官方標準已經更新到 OpenMP 5.2 了,但是直到推出 Visual Studio 2019 的時候,卻還停留在 OpenMP 2.0 的超古老版本…

直到之前在 Visual Studio 2019 16.9 的時候,才終於試著開始幫 Visual C++ 的 OpenMP 加上新功能;當時主要的改進,是加入了 OpenMP 對於 SIMD 的支援,另外也開始試著要將 OpenMP 的實作切換到 LLVM 的版本。

而這次微軟又發布了《OpenMP Task Support for C++ in Visual Studio》,在最新的 Visual Studio 2022 17.2(還在預覽階段)中,在使用 LLVM OpenMP(加上 -openmp:llvm)的情況下,終於支援 OpenMP 3 的 task 這個 directive 了!

閱讀更多»

用 AI 來輔助寫程式:直接給你整個函式的 GitHub Copilot

GitHub Copilot(官網)是 GitHub 在 2021 年六月發布,一個透過 OpenAI(官網)的 Codex 系統(官網、應該是基於 GPT-3)來完成的 AI 程式輔助開發系統。

以往的程式輔助系統,大部分都是很局部的自動完成,例如自動完成要呼叫函式名稱、或是變數名稱;雖然算是很有幫助,但是其實相對侷限。

而 GitHub Copilot 則是透過深度學習技術,大幅強化了自動完成的能力,甚至變成可以只打註解、就給你整個函式的內容!在應用上的空間,算是提供了相當的程度。

閱讀更多»

Visual Studio 的 Solution Filter

在開發一個大型專案裡面,通常會有一堆小專案,彼此之間可能還會有很複雜的相依性;在 Visual Studio 裡,微軟是透過一個「方案」(solution、附檔名是 sln)來管理多個「專案」(project)的形式來做的,在開啟方案後,就會把所有的專案都載入。

但是實際上,大部分要開發的時候,其實都是針對特定專案來進行,其實只需要和他有關的專案就可以了,並不需要真的把所有的專案都載入。

為了這種需求,微軟其實有提供「方案篩選」的功能(官方文件),讓開發者可以在不修改方案的情況下,自行設定要載入那些專案、並儲存成一個 Solution Filter(副檔名是 slnf)的檔案,方便日後使用。閱讀更多»