std::codecvt<InternT,ExternT,StateT>:: max_length, do_max_length
|
헤더 파일에 정의됨
<locale>
|
||
| (1) | ||
|
public
:
int max_length ( ) const throw ( ) ; |
(C++11 이전) | |
|
public
:
int max_length ( ) const noexcept ; |
(C++11 이후) | |
| (2) | ||
|
protected
:
virtual int do_max_length ( ) const throw ( ) ; |
(C++11 이전) | |
|
protected
:
virtual int do_max_length ( ) const noexcept ; |
(C++11 이후) | |
do_max_length
멤버 함수를 호출합니다.
[
from
,
from_end
)
와 유효한
state
에 대해
do_length
(
state, from, from_end,
1
)
가 반환할 수 있는 최대값을 반환합니다.
목차 |
반환값
ExternT
문자를
in()
을 사용하여 변환할 때 하나의
InternT
문자를 생성하기 위해 소비될 수 있는 최대 문자 수.
비변환 특수화 std:: codecvt < char , char , std:: mbstate_t > 는 1 을 반환합니다.
참고 사항
인코딩이 상태 종속적이면(
encoding
(
)
==
-
1
), 하나의 내부 문자를 생성하는 데
max_length()
개 이상의 외부 문자가 소비될 수 있습니다.
예제
#include <codecvt> #include <iostream> #include <locale> int main() { std::cout << "In codecvt_utf8, the longest multibyte character is " << std::codecvt_utf8<wchar_t>().max_length() << " bytes long\n"; std::cout << "In header-consuming codecvt_utf8, the longest multibyte character is " << std::codecvt_utf8<wchar_t, 0x10ffff, std::consume_header>().max_length() << " bytes long\n"; std::cout << "In this system's en_US.utf8, the longest multibyte character is " << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>( std::locale("en_US.utf8") ).max_length() << " bytes long\n"; std::cout << "In this system's zh_CN.gb18030, the longest multibyte character is " << std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>>( std::locale("zh_CN.gb18030") ).max_length() << " bytes long\n"; }
출력:
In codecvt_utf8, the longest multibyte character is 4 bytes long In header-consuming codecvt_utf8, the longest multibyte character is 7 bytes long In this system's en_US.utf8, the longest multibyte character is 6 bytes long In this system's zh_CN.gb18030, the longest multibyte character is 4 bytes long
참고 항목
|
MB_CUR_MAX
|
현재 C 로캘에서 멀티바이트 문자의 최대 바이트 수
(매크로 변수) |
|
[virtual]
|
하나의
InternT
문자를 생성하는 데 필요한
ExternT
문자 수를 반환함 (상수일 경우)
(가상 protected 멤버 함수) |