yohhoyの日記

技術的メモをしていきたい日記

_MSC_FULL_VERマクロ

Microsoft Visual C++コンパイラのバージョン判定マクロについて。

2017-03-07追記:本ページはVC2012以降メンテナンスされていない。最新版はyumetodoさんによる _MSC_VERと_MSC_FULLVERをまとめる を参照のこと。

メジャー/マイナーバージョンを判定するための_MSC_VERに加え、Visual Studio 2008以降(_MSC_VER>=1500)ではビルド番号まで含んだ_MSC_FULL_VERも定義される。*1

// unreliable list
VC6 SP5       1200  12008804
VC2002        1300  13009466
VC2003        1310  13103077
VC2003 SP1    1310  13106030
VC2005        1400  140050320
VC2005 SP1    1400  140050727
VC2008 RTM    1500  150021022
VC2008 SP1    1500  150030729
VC2010 RTM    1600  160030319
VC2010 SP1    1600  160040219
VC2012 RTM    1700  170050727
VC2012 NovCTP 1700  170051025

関連URL

*1:MSDNに記載があるのは Visual Studio 2008(MSVC9) 以降だが、非公開機能として Visual C++ 6.0(MSVC6) SP5 頃から存在していた模様。数値桁数は8桁または9桁のいずれか?