boost::locale::utf::utf_traits< CharType, size > Struct Template Reference

UTF Traits class - functions to convert UTF sequences to and from Unicode code points. More...

`#include <boost/locale/utf.hpp>`

## Public Types

typedef CharType | char_type
| The type of the character.

## Static Public Member Functions

template<typename Iterator >
static code_point | decode (Iterator &p, Iterator e)
static int | width (code_point value)
static int | trail_length (char_type c)
static bool | is_trail (char_type c)
| Returns true if c is trail code unit, always false for UTF-32.
static bool | is_lead (char_type c)
| Returns true if c is lead code unit, always true of UTF-32.
template<typename Iterator >
static Iterator | encode (code_point value, Iterator out)
template<typename Iterator >
static code_point | decode_valid (Iterator &p)

## Static Public Attributes

static constexpr int | max_width

## Detailed Description

### template<typename CharType, int size = sizeof(CharType)>
struct boost::locale::utf::utf_traits< CharType, size >

UTF Traits class - functions to convert UTF sequences to and from Unicode code points.

## Member Function Documentation

## decode()

template<typename CharType, int size = sizeof(CharType)>
template<typename Iterator >

static code_point boost::locale::utf::utf_traits< CharType, size >::decode | ( | Iterator & | p,
|  | Iterator | e
| ) |  |

static

Read one code point from the range [p,e) and return it.

- If the sequence that was read is incomplete sequence returns incomplete,
- If illegal sequence detected returns illegal

Requirements

- Iterator is valid input iterator

Postconditions

- p points to the last consumed character

## decode_valid()

template<typename CharType, int size = sizeof(CharType)>
template<typename Iterator >

static code_point boost::locale::utf::utf_traits< CharType, size >::decode_valid | ( | Iterator & | p | ) |

static

Decodes valid UTF sequence that is pointed by p into code point.

If the sequence is invalid or points to end the behavior is undefined

## encode()

template<typename CharType, int size = sizeof(CharType)>
template<typename Iterator >

static Iterator boost::locale::utf::utf_traits< CharType, size >::encode | ( | code_point | value,
|  | Iterator | out
| ) |  |

static

Convert valid Unicode code point value to the UTF sequence.

Requirements:

- value is valid code point
- out is an output iterator should be able to accept at least width(value) units

Returns the iterator past the last written code unit.

## trail_length()

template<typename CharType, int size = sizeof(CharType)>

static int boost::locale::utf::utf_traits< CharType, size >::trail_length | ( | char_type | c | ) |

static

Get the size of the trail part of variable length encoded sequence.

Returns -1 if C is not valid lead character

## width()

template<typename CharType, int size = sizeof(CharType)>

static int boost::locale::utf::utf_traits< CharType, size >::width | ( | code_point | value | ) |

static

The width of specific code point in the code units.

Requirement: value is a valid Unicode code point Returns value in range [1..max_width]

## Member Data Documentation

## max_width

template<typename CharType, int size = sizeof(CharType)>

constexpr int boost::locale::utf::utf_traits< CharType, size >::max_width

static

Maximal width of valid sequence in the code units:

- UTF-8 - 4
- UTF-16 - 2
- UTF-32 - 1

The documentation for this struct was generated from the following file:

- boost/locale/utf.hpp

- © Copyright 2009-2012 Artyom Beilis, Distributed under the Boost Software License, Version 1.0.