26 while ( !coll.empty() )
33 template <
class D,
class S>
39 template <
class D,
class S>
42 return static_cast<D
>( s );
45 template <
class S1,
class S2>
49 return _stricmp( str1.c_str(), str2.c_str() );
51 return strcasecmp( str1.c_str(), str2.c_str() );
54 template <
class S1, const
char*>
55 inline int stringicmp(
const S1& str1,
const char* str2 )
58 return _stricmp( str1.c_str(), str2 );
60 return strcasecmp( str1.c_str(), str2 );
63 template <const
char*,
class S2>
64 inline int stringicmp(
const char* str1,
const S2& str2 )
67 return _stricmp( str1, str2.c_str() );
69 return strcasecmp( str1, str2.c_str() );
73 #define ISTRINGSTREAM std::istringstream 75 #define OSTRINGSTREAM std::ostringstream 76 #define OSTRINGSTREAM_STR( x ) x.str() 86 template <
class T,
size_t N>
D implicit_cast(const S &s)
#define OSTRINGSTREAM_STR(x)
CONSTEXPR size_t arsize(T(&)[N])
std::string tostring(const Bscript::BTokenType &v)
int stringicmp(const S1 &str1, const S2 &str2)
D explicit_cast(const S &s)