aGrUM  0.20.3
a C++ library for (probabilistic) graphical models
cast_unicode.h File Reference

Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN() & Christophe GONZALES() info_at_agrum_dot_org. More...

#include <iostream>
#include <locale>
#include <sstream>
#include <string>
#include <agrum/tools/core/cast_unicode_inl.h>
+ Include dependency graph for cast_unicode.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

std::wstring widen (const std::string &str)
 Cast a std::string into a std::wstring. More...
 
std::string narrow (const std::wstring &str)
 Cast a std::wstring into a std::string. More...
 

Detailed Description

Copyright (c) 2005-2021 by Pierre-Henri WUILLEMIN() & Christophe GONZALES() info_at_agrum_dot_org.

This library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library. If not, see http://www.gnu.org/licenses/.

Unicode helper functions.

Author
Christophe GONZALES() and Pierre-Henri WUILLEMIN()

Definition in file cast_unicode.h.

Function Documentation

◆ narrow()

std::string narrow ( const std::wstring &  str)

Cast a std::wstring into a std::string.

Parameters
strThe std::wstring to cast.
Returns
Returns the std::string of str.

Definition at line 50 of file cast_unicode_inl.h.

50  {
51  std::ostringstream stm;
52  const std::ctype< char >& ctfacet = std::use_facet< std::ctype< char > >(stm.getloc());
53 
54  for (std::size_t i = 0; i < str.size(); ++i) {
55  stm << ctfacet.narrow(str[i], 0);
56  }
57 
58  return stm.str();
59 }

◆ widen()

std::wstring widen ( const std::string &  str)

Cast a std::string into a std::wstring.

Parameters
strThe std::string to cast.
Returns
Returns the std::wstring of str.

Definition at line 39 of file cast_unicode_inl.h.

39  {
40  std::wostringstream wstm;
41  const std::ctype< wchar_t >& ctfacet = std::use_facet< std::ctype< wchar_t > >(wstm.getloc());
42 
43  for (size_t i = 0; i < str.size(); ++i) {
44  wstm << ctfacet.widen(str[i]);
45  }
46 
47  return wstm.str();
48 }