最終更新日時(UTC):
が更新

履歴 編集

macro
<cstdlib>

MB_CUR_MAX

#define MB_CUR_MAX positive-integer-expression

概要

現在のロケールのマルチバイト文字の最大バイト数を示すマクロ。

この定数はコンパイル時定数ではなく、実行時に変化する可能性がある。

この値がMB_LEN_MAXを超えることはない。

結果型

size_t型の正の整数値。

#include <iostream>
#include <clocale>
#include <cstdlib>

int main() {
  //C ロケール(標準ASCII)
  std::cout << "Locale: standard, MB_CUR_MAX: " << MB_CUR_MAX << std::endl;

  //ロケールを日本(UTF-8)に変更
  if (std::setlocale(LC_CTYPE, "ja_JP.UTF-8") == nullptr) {
    std::cout << "Failed to set locale to ja_JP.UTF-8"  << std::endl;
  } else {
    std::cout << "Locale: ja_JP.UTF-8, MB_CUR_MAX: " << MB_CUR_MAX << std::endl;
  }
}

出力例

Locale: standard, MB_CUR_MAX: 1
Locale: ja_JP.UTF-8, MB_CUR_MAX: 6

関連項目

  • MB_LEN_MAX: 全ロケールでのマルチバイト文字の最大バイト数
  • setlocale: ロケールを変更する

参照