public member function
<locale>

std::codecvt::encoding

int encoding() const throw();
int encoding() const noexcept;
返回編碼寬度
如果這是一個固定值,則返回外部字元相對於內部字元的寬度。

否則,如果這是一個可變值,該函式返回0.

或者,如果外部序列的編碼是狀態相關的,則該函式返回-1.

內部,此函式僅呼叫虛擬受保護成員 do_encoding,該成員在預設情況下按上述方式工作。

引數



返回值

以下之一,描述外部字元如何編碼
解釋
0字元具有可變寬度,每種字元的最大長度為 max_length
-1編碼是狀態相關的,可能每個字元除了 max_length 之外還有額外的移位碼。
其他值相當於一個內部字元的固定數量的外部字元

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// codecvt::encoding example
#include <iostream>       // std::cout
#include <locale>         // std::locale, std::codecvt, std::use_facet

int main ()
{
  std::locale loc;

  const std::codecvt<wchar_t,char,mbstate_t>& myfacet = 
    std::use_facet<std::codecvt<wchar_t,char,mbstate_t> >(loc);

  std::cout << "Characteristics of codecvt<wchar_t,char,mbstate_t>:\n";
  std::cout << "Encoding: " << myfacet.encoding() << '\n';
  std::cout << "Always noconv: " << myfacet.always_noconv() << '\n';
  std::cout << "Max length: " << myfacet.max_length() << '\n';
  return 0;
}

可能的輸出

Characteristics of codecvt<wchar_t,char,mbstate_t>:
Encoding: 0
Always noconv: 0
Max length: 5


資料競爭

訪問了 facet 物件。

異常安全

無異常保證: 絕不丟擲異常。

另見