微軟正式推出 Visual Studio 2017

微軟又針對旗下的程式開發環境、Visual Studio 推出新版本囉~這次的版本是 Visual Studio 2017,目前也已經可以下載安裝了~它的官方網站是:

https://www.visualstudio.com/zh-hant/

而新功能的介紹,則可以參考「新功能」的頁面(連結)、或是直接看 release note 的細節(連結)。

目前的 Visual Studio 有三個版本,包括了免費的社群版(Community、官網)、一般人用的專業版(Professional、官網),以及最高階的企業版(Enterprise、官網)。

閱讀全文

讓函式回傳多個值:std::tuple

在 C++ 的規範裡面,一個函式基本上只能回傳一個值;但是實際上,很多時候,我們會希望、也有需要讓一個函式可以回傳超過一個值。

這時候,常見的方法大概會是兩個方向:

  1. 把要回傳的值,以函式的參數的形式,來做傳遞
  2. 建立一個特殊的結構、或類別,來把要回傳的值打包起來

前者感覺應該比較像是 C 的寫法,像是微軟的 Kinect for Windows SDK v2 基本上就可以說是這種風格;他把回傳值都用來回傳執行的結果,而真正的資料,則都是以參數來做傳遞。

後者基本上比較像是 C++ 的物件導向,也算是很常見的、很好實作的;像是 std::minmax()參考)就是把兩個回傳的值、以 std::pair<> 的形式來做封包、回傳。

閱讀全文

微軟 2016 程式開發相關消息

這篇算是稍微整理一下,微軟在 Build 2016 大會上(官網),一些關於程式開發的新消息。

在 Heresy 個人來看,這幾年微軟一個很大的方向,應該就是「跨平台」吧…包含前幾天的《Windows 10 將可以跑 Linux 的 Bash shell 和 Ubuntu 的程式了》,以及更早的 Visual Studio Code 在內,微軟現在似乎越來越主動走向 Linux 社群了…

而這篇的重點,則包含了新的 Visual Studio "15" 預覽版,Visual Studio 2015 Update 2,以及 Visual C++ for Linux Development、C/C++ extension for Visual Studio Code;而在 .Net 那頭,更是喊出了「開放、跨平台、免費」的口號(參考)。

閱讀全文

C++11 程式的平行化:async 與 future

之前在《C++ 的多執行序程式開發 Thread:基本使用》這系列文章裡面,Heresy 已經大概整理了一下 C++11 提供的 std::thread 這個執行序函式庫的使用方法了。

不過,實際上在 C++11 的「Thread support library」(參考)裡面,除了 std::thread 以外,還有不少東西可以用。這篇要寫的,就是其中的 std::async()std::future<>

基本上,使用 std::thread 來建立一個新的執行序、另外執行某些計算,在 C++ 中算是比較底層的方法;它的功能很彈性,但是相對的,也有一些比較麻煩的地方。比如說透過 std::thread 執行的函式基本上無法回傳值,而在其他執行序中產生的 exception 也沒有辦法被 catch 到。

std::async() 在某方面來說,則算是一個特化的功能,他的設計概念,就是

當要進行一個沒有馬上要用其結果的複雜計算的時候,把計算丟到另一個執行序去,等到之後真的要用的時候,才去確認他跑完沒、並取得他的結果。

閱讀全文

AMD 放大招了…推出 Boltzmann Initiative、支援 CUDA 程式的轉移!

NVIDIA 的 CUDA 架構,基本上應該算是現階段最成功的 GPGPU 環境之一。他在新一代、專門用來做大量平行計算的環境裡面,算是推出最早的,所以相對起來、發展的也算是最完整的;而後來雖然 Khronos 有推出跨硬體平台的開放標準 OpenCL(Intel、AMD、NVIDIA 都有支援),但是就 Heresy 所知,還是有許多開發人員是偏好 CUDA 的。

而 AMD 在 GPGPU 這一塊…個人是覺得發展的始終有點悲劇吧?Heresy 有紀錄的部分,他最早是推出自家的「Stream SDK」,而之後就徹底捨棄自己的語言、完全轉投向 OpenCL、Stream SDK 也改名為「AMD APP SDK」了。

儘管 AMD 也試著在靠 OpenCL、以及後來所推出、基於 AMD APU 的「Heterogeneous System Architecture」(異質系統架構、官網)來做平行計算的發展方向(AMD 稱之為「Heterogeneous Computing」、異質計算),但是實際上…就個人所知,成效似乎不算是很好。

閱讀全文

C++ Core Guidelines

「C++ Core Guidelines」是在 CppCon 2015 這個 C++ 的 conderence(官網)被提出來的,這個專案目前還在發展中,它的內容都放在 https://github.com/isocpp/CppCoreGuidelines 裡。

這個「Guidelines Prohect」的主要目的,是希望可以盡量針對問題,提出好的答案、讓大家可以參考、更有效率地寫出更好的 C++ 程式。

而最主要的介紹,應該是可以參考 Bjarne Stroustrup(C++ 之父、維基百科)的《Writing good C++14》(投影片YouTube)這份簡報。其他在 talks 資料夾(連結)中,也有其他的投影片,在 docs 資料夾(連結)中,目前則有兩份文件。

閱讀全文

微軟推出 VisualStudio 2015 以及 VisualStudio 2013 Update 5

在去年年底微軟推出 Visual Studi 2015 預覽版後,在今年四月微軟又針對 VisualStudio 2015 持續改良、推出了 Visual Studio 2015 RC,而現在、正式版終於推出了!而目前也已經可以在微軟網站下載了,其網址是:

https://www.visualstudio.com/downloads/download-visual-studio-vs

目前微軟的網站提供了可以免費使用的社群版(Visual Studio Community)、以及企業版(Visual Studio Enterprise)的試用版可供下載;另外也有提供跨平台、用來進行網頁開發的 VisualStudio Code 可以下載。

閱讀全文

微軟發表跨平台的 VisualStudio Code、以及 Visual Studio 2015 RC

微軟在去年底,曾經針對其自家的軟體開發環境,發表了一個相當大的策略性變化的新聞。包括了提供有限度免費的 VisualStudio Community 2013,以及開放了一定程度的 .Net Core 的原始碼;而在下一代的 VisualStudio 2015 Preview(預覽版)更是加入了跨平台開開的能力,讓開發者可以在 Windows 上透過 VisualStudio 2015 來開發 Android 或 iOS 的 App~
(請參考《微軟大消息!免費的全功能版 Visual Studio Community 2013、以及 Visual Studi 2015 預覽版發布!》)

而在今年的微軟 Build 大會上,微軟又繼續發表了一些讓人驚訝的消息了~包括了跨平台(Windows、Linux、MacOS)的開發環境「VisualStudio Code」、以及可以針對 Linux 程式進行偵錯的「Visual Studio 2015 RC」~官方的消息,可以參考《BUILD 2015 News: Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5》或《Introducing Visual Studio Code, Visual Studio 2015 RC, Application Insights Public Preview and .NET Core Preview for Linux and Mac》。

閱讀全文

常見編譯器對 C++ 新標準的支援

本文的資料是來自《The Growth of Modern C++ Support》這篇文章。在這篇文章裡面,作者是針對 VC++(Microsoft Visual C++)、gcc、clang 以及 ICC(Intel C++ Compiler)這幾個知名的 C++ 邊義器,去整理他們對於 C++ 的新標準的支援進度圖。

首先,是 C++ 11 的部分(點下去可以看大圖):

閱讀全文

微軟大消息!免費的全功能版 Visual Studio Community 2013、以及 Visual Studi 2015 預覽版發布!

昨天微軟針對自家的開發環境,還真是放出了不少讓 Heresy 訝異的消息…而在 Somasegar’s blog,也有一篇標題超長的文章,來彙整這些發布…該文章是《Opening up Visual Studio and .NET to Every Developer, Any Application: .NET Server Core open source and cross platform, Visual Studio Community 2013 and preview of Visual Studio 2015 and .NET 2015

整個來說,這次一口氣發布的消息共有五項,包括了:

  • Server-side 的 .Net Core stack 在接下來的幾個月、將會完全開放原始碼
    而且開放原始碼的 .Net 除了可以在 Windows 執行外外,也將會可以 Linux 和 Mac OS X 上運作

  • 針對自家 Windows 上的開發工具、Visual Studio,推出了新的版本「Visual Studio Community 2013」
    這是一個免費版本,而且和之前免費、有做功能閹割 Express 版不同,他是全功能的版本(等同專業版)

  • 下一代的 Visual Studio 2015 Preview、.NET 2015 Preview。提供了跨平台(行動裝置…)的程式開發功能!

  • Visual Studio 2013 Update 4 發布。

  • Visual Studio Online 的 DevOps 加入 Visual Studio Online Release Management service 和 Visual Studio Cloud Deployment Projects。

閱讀全文