31 #include "DebugUtilities.h" 36 inline std::string NarrowString(
const std::wstring &WideStr)
38 std::string NarrowStr;
39 const std::ctype<wchar_t>& ctfacet = std::use_facet< std::ctype<wchar_t> >( std::wstringstream().getloc() ) ;
40 for( std::wstring::const_iterator CurrWChar = WideStr.begin();
41 CurrWChar != WideStr.end();
43 NarrowStr.push_back( ctfacet.narrow( *CurrWChar, 0 ) );
48 inline std::wstring WidenString(
const char *Str)
51 const std::ctype<wchar_t>& ctfacet = std::use_facet< std::ctype<wchar_t> >( std::wstringstream().getloc() ) ;
52 for(
auto CurrChar = Str; *CurrChar != 0; ++CurrChar )
53 WideStr.push_back( ctfacet.widen( *CurrChar ) );
58 inline std::wstring WidenString(
const std::string &Str)
61 const std::ctype<wchar_t>& ctfacet = std::use_facet< std::ctype<wchar_t> >( std::wstringstream().getloc() ) ;
62 for( std::string::const_iterator CurrChar = Str.begin();
63 CurrChar != Str.end();
65 WideStr.push_back( ctfacet.widen( *CurrChar ) );
70 inline int StrCmpNoCase(
const char* Str1,
const char* Str2,
size_t NumChars)
72 #if defined(PLATFORM_ANDROID) || defined(PLATFORM_LINUX) 73 # define _strnicmp strncasecmp 76 return _strnicmp( Str1, Str2, NumChars );
79 inline int StrCmpNoCase(
const char* Str1,
const char* Str2)
81 #if defined(PLATFORM_ANDROID) || defined(PLATFORM_LINUX) 82 # define _stricmp strcasecmp 85 return _stricmp( Str1, Str2 );
89 inline bool StrCmpSuff(
const char *RefStr,
const char *Str,
const char *Suff)
91 VERIFY_EXPR(RefStr !=
nullptr && Str!=
nullptr && Suff !=
nullptr);
95 const auto *r = RefStr;
97 for(; *r!=0 && *s!=0; ++r, ++s)
105 VERIFY_EXPR(*r == 0);
109 return strcmp(r, Suff) == 0;
112 inline void StrToLowerInPlace(std::string &str)
114 std::transform(str.begin(), str.end(), str.begin(),
116 [](
unsigned char c) {
return static_cast<char>(std::tolower(c)); }
120 inline std::string StrToLower(std::string str)
122 StrToLowerInPlace(str);
Namespace for the OpenGL implementation of the graphics engine.
Definition: BufferD3D11Impl.h:34