MGLバージョン情報#

概要#

MGLのバージョン情報に関する宣言と定義です。

MGLはバージョン情報をメジャー、マイナー、パッチの3つの組み合わせで表現します。これらは個別の値で定義されている他、各々の値を32ビット整数にまとめた値でも利用されています。

定数#

種類

名前

内容

バージョン

定数

kCurrentVersion

MGLのバージョン

1.0.0+

定数

kMajorVersion

MGLのメジャーバージョン

1.0.0+

定数

kMinorVersion

MGLのマイナーバージョン

1.0.0+

定数

kPatchVersion

MGLのパッチバージョン

1.0.0+

マクロ

MGL_CURRENT_VERSION

MGLのバージョン

1.1.2+

マクロ

MGL_MAJOR_VERSION

MGLのメジャーバージョン

1.1.2+

マクロ

MGL_MINOR_VERSION

MGLのマイナーバージョン

1.1.2+

マクロ

MGL_PATCH_VERSION

MGLのパッチバージョン

1.1.2+

関数・定数式#

種類

名前

内容

バージョン

定数式

MakeVersion

3つのバージョン値から32ビットバージョン値を生成

1.0.0+

定数式

IsALater

指定したバージョン以降であるかを取得

1.0.0+

マクロ

MGL_MAKE_VERSION

3つのバージョン値から32ビットバージョン値を生成

1.1.2+


kCurrentVersion#

宣言#

namespace MGL
{
    constexpr uint32_t kCurrentVersion = MakeVersion(
                                            kMajorVersion,
                                            kMinorVersion,
                                            kPatchVersion);
}

説明#

現在利用中のMGLのバージョンを表す定数です。メジャー、マイナー、パッチバージョンをそれぞれ10進数で扱い、桁をずらして1つの値にまとめて表現されています。

バージョン1.1.12におけるkCurrentVersionの値は10010012です。

バージョン情報#

MGL 1.0.0から利用可能

関連#


kMajorVersion#

宣言#

namespace MGL
{
    constexpr uint32_t kMajorVersion = MGL_MAJOR_VERSION;       //!< メジャーバージョン
}

説明#

MGLのメジャーバージョンを表す定数です。

この値は1から429の間で予約されています。

バージョン情報#

MGL 1.0.0から利用可能

関連#


kMinorVersion#

宣言#

namespace MGL
{
    constexpr uint32_t kMinorVersion = MGL_MINOR_VERSION;       //!< マイナーバージョン
}

説明#

MGLのマイナーバージョンを表す定数です。

この値は0から999の間で予約されています。

バージョン情報#

MGL 1.0.0から利用可能

関連#


kPatchVersion#

宣言#

namespace MGL
{
    constexpr uint32_t kPatchVersion = MGL_PATCH_VERSION;       //!< パッチバージョン
}

説明#

MGLのパッチバージョンを表す定数です。

この値は0から9999の間で予約されています。

バージョン情報#

MGL 1.0.0から利用可能

関連#


MGL_CURRENT_VERSION#

宣言#

#define MGL_CURRENT_VERSION \
        MGL_MAKE_VERSION(MGL_MAJOR_VERSION, MGL_MINOR_VERSION, MGL_PATCH_VERSION)

説明#

MGLの現在のバージョンを表す定数マクロです。

このマクロはプリプロセス時にMGLのバージョンを評価するために存在しています。通常はMGL::kCurrentVersionを使用してください。

バージョン情報#

MGL 1.1.2から利用可能

関連#


MGL_MAJOR_VERSION#

宣言#

#define MGL_MAJOR_VERSION 1

説明#

MGLの現在のメジャーバージョンを表す定数マクロです。

このマクロはプリプロセス時にMGLのバージョンを評価するために存在しています。通常はMGL::kMajorVersionを使用してください。

バージョン情報#

MGL 1.1.2から利用可能

関連#


MGL_MINOR_VERSION#

宣言#

#define MGL_MINOR_VERSION 1

説明#

MGLの現在のマイナーバージョンを表す定数マクロです。

このマクロはプリプロセス時にMGLのバージョンを評価するために存在しています。通常はMGL::kMinorVersionを使用してください。

バージョン情報#

MGL 1.1.2から利用可能

関連#


MGL_PATCH_VERSION#

宣言#

#define MGL_PATCH_VERSION 12

説明#

MGLの現在のバージョンを表す定数マクロです。

このマクロはプリプロセス時にMGLのバージョンを評価するために存在しています。通常はMGL::kPatchVersionを使用してください。

バージョン情報#

MGL 1.1.2から利用可能

関連#


MakeVersion#

3つのバージョン値から32ビットバージョン値を生成

宣言#

namespace MGL
{
    constexpr uint32_t MakeVersion(
                            uint32_t major,
                            uint32_t minor,
                            uint32_t patch) noexcept;
}

引数#

uint32_t major

メジャーバージョン

uint32_t minor

マイナーバージョン

uint32_t patch

パッチバージョン

戻り値#

uint32_t

各々のバージョンを合成した32ビット値

説明#

3つのバージョン値から32ビット整数のバージョン値を生成します。生成されるバージョン値は各々の値を10進数で扱い桁をずらして表現したものです。

利用例#

auto version = MGL::MakeVersion(1, 2, 3);    // version = 10020003

バージョン情報#

MGL 1.0.0から利用可能

関連#


IsALater#

指定したバージョン以降であるかを取得

宣言#

namespace MGL
{
    constexpr bool IsALater(
                    uint32_t major,
                    uint32_t minor = 0,
                    uint32_t patch = 0) noexcept;
}

引数#

uint32_t major

メジャーバージョン

uint32_t minor

マイナーバージョン。省略時は0

uint32_t patch

パッチバージョン。省略時は0

戻り値#

bool

現在のバージョンが引数で指定したバージョン以降であればtrueを、そうでなければfalse

説明#

現在利用中のバージョンが、引数で指定したバージョン以降であるかをチェックするための定数式です。

利用例#

// MGLのバージョンが1.2以降であるかをチェック
if (MGL::IsALater(1, 2))
{
    // 利用中のMGLのバージョンが1.2以降であればここに到達する
    ...
}

バージョン情報#

MGL 1.0.0から利用可能


MGL_MAKE_VERSION#

MGLのバージョンを生成するプリプロセッサマクロ

宣言#

#define MGL_MAKE_VERSION(major, minor, patch) \
        ((major) * 10000000 + (minor) * 10000 + (patch))

引数#

major

メジャーバージョン

minor

マイナーバージョン

patch

パッチバージョン

戻り値#

3つの引数を合成した値

説明#

3つのバージョンを合成した値を生成するためのプリプロセッサマクロです。

このマクロはプリプロセス時における評価を行うために用意されています。通常はMGL::MakeVersionを使用してください。

利用例#

#if MGL_CURRENT_VERSION >= MGL_MAKE_VERSION(1, 1, 2)
    // MGL 1.1.2以降でのみ有効なコードをここに記述
#endif

バージョン情報#

MGL 1.1.2から利用可能

関連#