Visual Studio Qt IntelliSense: 無法開啟來源檔案 "initializer_list"
完整的訊息如下:
IntelliSense: 無法開啟來源檔案 "initializer_list"
IntelliSense: 內嵌規範只能用於函式宣告
IntelliSense: namespace "std" 沒有成員 "initializer_list"
IntelliSense: 必須是 ')'
IntelliSense: 必須是 ';'
IntelliSense: class "QStringList" 沒有成員 "sort"
一開始因為有些專案會出現,有些不會,所以沒有發現原因,
後來發現原因是 Visual Studio 2013 指定平台工具組為 Visual Studio 2012,
也就是使用 VS 2013 為 IDE,但是 compiler toolchain 使用 VS 2012 進行編譯。
一些程式的寫法是用 Visual Studio 的版本來判斷是否支援某些寫法,像是 C++11 之類的,
這時候因為使用的 IDE 版本跟編譯器不一致,導致 VS 的 IntelliSense 誤判。
目前的解決方法是強制設定這些專案的 VS 版本為 2012,
在專案屬性宣告 _MSC_FULL_VER=170061030 即可。