小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


#ifdef _MSC_VER >= nみたいなコードの意味

はじめに

昔のコードを眺めていたら、_MSC_VERを使った以下のようなコードに出会いました。

#ifdef _MSC_VER >= n
  #pragma once
#endif

_MSC_VERってなんだろうと思ったら、開発環境のバージョンでした。

プログラミングメモ _MSC_VERプログラミングメモ _MSC_VER

_MSC_VERの意味

_MSC_VERは、マイクロソフトのコンパイラのバージョンを返す定義済みマクロです。
返ってくる値によって、コンパイラのバージョンを判断することができます。

Microsoft Compiler
#ifdef _MSC_VER
#if _MSC_VER >=600 // C Compiler 6.0以降 VC++含む
#if _MSC_VER >=700 // C/C++ Compiler 7.0以降 VC++含む
#if _MSC_VER >=800 // VC++1.0以降
#if _MSC_VER >=900 // VC++2.0以降
#if _MSC_VER >=1000 // VC++4.0以降
#if _MSC_VER >=1010 // VC++4.1以降
#if _MSC_VER >=1020 // VC++4.2以降
#if _MSC_VER >=1100 // VC++5.0以降
#if _MSC_VER >=1200 // VC++6.0以降
#if _MSC_VER >=1300 // VC2002(VC7.0)以降
#if _MSC_VER >=1310 // VC2003(VC7.1)以降
#if _MSC_VER >=1400 // VC2005(VC8.0)以降
#if _MSC_VER >=1500 // VC2008(VC9.0)以降
#if _MSC_VER >=1600 // VC2010(VC10.0)以降
ディレクティブ - MoonWing はてなブックマーク - ディレクティブ - MoonWing

昔は、#pragma onceは処理系によって警告が出たりしたみたいですね。
今はあんまり関係なさそう。