Text Conversions

## Classes

class | booster::locale::converter_base
| This class provides base flags for text manipulation. It is used as base for converter facet. More...
class | booster::locale::converter< CharType >
class | booster::locale::converter< char >
class | booster::locale::converter< wchar_t >

## Enumerations

enum | booster::locale::norm_type { booster::locale::norm_nfd, booster::locale::norm_nfc, booster::locale::norm_nfkd, booster::locale::norm_nfkc, booster::locale::norm_default = norm_nfc }

## Functions

template<typename CharType >
std::basic_string< CharType > | booster::locale::normalize (std::basic_string< CharType > const &str, norm_type n=norm_default, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::normalize (CharType const *str, norm_type n=norm_default, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::normalize (CharType const *begin, CharType const *end, norm_type n=norm_default, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_upper (std::basic_string< CharType > const &str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_upper (CharType const *str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_upper (CharType const *begin, CharType const *end, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_lower (std::basic_string< CharType > const &str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_lower (CharType const *str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_lower (CharType const *begin, CharType const *end, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_title (std::basic_string< CharType > const &str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_title (CharType const *str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::to_title (CharType const *begin, CharType const *end, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::fold_case (std::basic_string< CharType > const &str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::fold_case (CharType const *str, std::locale const &loc=std::locale())
template<typename CharType >
std::basic_string< CharType > | booster::locale::fold_case (CharType const *begin, CharType const *end, std::locale const &loc=std::locale())

## Detailed Description

This module provides various function for string manipulation like Unicode normalization, case conversion etc.

## Enumeration Type Documentation

enum booster::locale::norm_type

The type that defined normalization form

Enumerator
norm_nfd | Canonical decomposition.
norm_nfc | Canonical decomposition followed by canonical composition.
norm_nfkd | Compatibility decomposition.
norm_nfkc | Compatibility decomposition followed by canonical composition.
norm_default | Default normalization - canonical decomposition followed by canonical composition.

## Function Documentation

template<typename CharType >

std::basic_string<CharType> booster::locale::fold_case | ( | std::basic_string< CharType > const & | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Fold case of a string str according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::case_folding.

template<typename CharType >

std::basic_string<CharType> booster::locale::fold_case | ( | CharType const * | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Fold case of a NUL terminated string str according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::case_folding.

template<typename CharType >

std::basic_string<CharType> booster::locale::fold_case | ( | CharType const * | begin,
|  | CharType const * | end,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Fold case of a string in range [begin,end) according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::case_folding.

template<typename CharType >

std::basic_string<CharType> booster::locale::normalize | ( | std::basic_string< CharType > const & | str,
|  | norm_type | n = `norm_default`,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Normalize Unicode string str according to normalization form n

Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take in account the locale encoding, because Unicode decomposition and composition are meaningless outside of a Unicode character set.

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::normalization.

Referenced by booster::ptime::ptime().

template<typename CharType >

std::basic_string<CharType> booster::locale::normalize | ( | CharType const * | str,
|  | norm_type | n = `norm_default`,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Normalize NUL terminated Unicode string str according to normalization form n

Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take in account the locale encoding, because Unicode decomposition and composition are meaningless outside of a Unicode character set.

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::normalization.

template<typename CharType >

std::basic_string<CharType> booster::locale::normalize | ( | CharType const * | begin,
|  | CharType const * | end,
|  | norm_type | n = `norm_default`,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Normalize Unicode string in range [begin,end) according to normalization form n

Note: This function receives only Unicode strings, i.e.: UTF-8, UTF-16 or UTF-32. It does not take in account the locale encoding, because Unicode decomposition and composition are meaningless outside of a Unicode character set.

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::normalization.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_lower | ( | std::basic_string< CharType > const & | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a string str to lower case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::lower_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_lower | ( | CharType const * | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a NUL terminated string str to lower case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::lower_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_lower | ( | CharType const * | begin,
|  | CharType const * | end,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a string in range [begin,end) to lower case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::lower_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_title | ( | std::basic_string< CharType > const & | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a string str to title case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::title_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_title | ( | CharType const * | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a NUL terminated string str to title case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::title_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_title | ( | CharType const * | begin,
|  | CharType const * | end,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a string in range [begin,end) to title case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::title_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_upper | ( | std::basic_string< CharType > const & | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a string str to upper case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::upper_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_upper | ( | CharType const * | str,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a NUL terminated string str to upper case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::upper_case.

template<typename CharType >

std::basic_string<CharType> booster::locale::to_upper | ( | CharType const * | begin,
|  | CharType const * | end,
|  | std::locale const & | loc = `std::locale()`
| ) |  |

Convert a string in range [begin,end) to upper case according to locale loc

Note
  throws std::bad_cast if loc does not have converter facet installed

References booster::locale::converter_base::upper_case.