本文整理汇总了C++中IsoString::Clear方法的典型用法代码示例。如果您正苦于以下问题:C++ IsoString::Clear方法的具体用法?C++ IsoString::Clear怎么用?C++ IsoString::Clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IsoString
的用法示例。
在下文中一共展示了IsoString::Clear方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetVersion
void MetaModule::GetVersion( int& major, int& minor, int& release, int& build,
IsoString& language, IsoString& status ) const
{
// Set undefined states for all variables, in case of error.
major = minor = release = build = 0;
language.Clear();
status.Clear();
IsoString vs( Version() );
// A version string must begin with a version marker
if ( vs.Length() < LengthOfVersionMarker )
return;
// Split the string of version numbers into tokens separated by dots
StringList tokens;
vs.Break( tokens, '.', false/*trim*/, LengthOfVersionMarker );
// Required: MM.mm.rr.bbbb.LLL
// Optional: .<status>
if ( tokens.Length() < 5 || tokens.Length() > 6 )
return;
// Extract version numbers
try
{
int MM = tokens[0].ToInt( 10 );
int mm = tokens[1].ToInt( 10 );
int rr = tokens[2].ToInt( 10 );
int bbbb = tokens[3].ToInt( 10 );
major = MM;
minor = mm;
release = rr;
build = bbbb;
}
catch ( ... ) // silently eat all parse exceptions here
{
return;
}
// Language code
language = tokens[4]; // ### TODO: Verify validity of ISO 639.2 code
// Optional status word
if ( tokens.Length() == 6 )
status = tokens[5]; // ### TODO: Verify validity of the status word
}
示例2: GetDemangledFunctionName
static IsoString GetDemangledFunctionName( const char* symbol, IsoString& addrStr )
{
IsoString symbolStr( symbol );
addrStr.Clear();
// Get mangled function name. Example:
// /opt/PixInsight/bin/lib/libQtGui.so.4(_ZN7QWidget5eventEP6QEvent+0x411) [0x7fa271347811]
StringList tokens;
symbolStr.Break( tokens, '(' , true/*trim*/ );
if ( tokens.Length() != 2 )
return symbolStr;
// Take second token and split again.
StringList tokens2;
tokens[1].Break( tokens2, '+' , true/*trim*/ );
if ( tokens2.Length() != 2 )
return symbolStr;
// If there is no function name, do not set the addr string.
if ( !tokens2[0].IsEmpty() )
{
addrStr = tokens2[1];
addrStr.DeleteChar( '(' );
addrStr.DeleteChar( ')' );
}
// The first token of tokens2 contains the mangled string. Demangle it.
size_t funcnameSize = 256;
char funcname[ funcnameSize ];
int status;
IsoString token( tokens2[0] );
const char* demangledFuncname = abi::__cxa_demangle( token.c_str(), funcname, &funcnameSize, &status );
return (status == 0) ? IsoString( demangledFuncname ) : symbolStr;
}
示例3: Tokenize
FilterParser::token_list FilterParser::Tokenize( const IsoStringList& linesUTF8 )
{
token_list tokenList;
bool blockComment = false;
int row = 0;
for ( IsoStringList::const_iterator i = linesUTF8.Begin(); i < linesUTF8.End(); ++i, ++row )
{
IsoString token;
int tokenCol = 0;
for ( IsoString::const_iterator j = i->Begin(); j < i->End(); ++j )
{
if ( blockComment )
{
if ( *j == '*' )
if ( ++j < i->End() )
if ( *j == '/' )
{
blockComment = false;
/*
* Uncomment the next line to turn block comments into
* separators.
*
tokenCol = j - i->Begin() + 1;
*/
}
}
else
{
bool lineComment = false;
switch ( *j )
{
case ' ':
case '\t':
if ( !token.IsEmpty() )
{
tokenList.Add( Token( token, row, tokenCol ) );
token.Clear();
}
for ( IsoString::const_iterator k = j; ++k < i->End(); ++j )
if ( *k != ' ' && *k != '\t' )
break;
tokenCol = j - i->Begin() + 1;
break;
/*
case ',':
if ( token.IsEmpty() )
throw SourceCodeError( "Expected a token before ','", row+1, int( j - i->Begin() + 1 ) );
tokenList.Add( Token( token, row, tokenCol ) );
token.Clear();
tokenCol = j - i->Begin() + 1;
break;
*/
case '{':
case '}':
if ( !token.IsEmpty() )
{
tokenList.Add( Token( token, row, tokenCol ) );
token.Clear();
}
tokenList.Add( Token( IsoString( *j ), row, int( j - i->Begin() ) ) );
tokenCol = j - i->Begin() + 1;
break;
case '/':
if ( ++j < i->End() )
{
if ( *j == '/' )
lineComment = true;
else if ( *j == '*' )
{
blockComment = true;
/*
* Uncomment the next lines to turn block comments into
* separators.
*
if ( !token.IsEmpty() )
{
tokenList.Add( Token( token, row, tokenCol ) );
token.Clear();
}
*/
}
else
token += *--j;
}
break;
default:
token += *j;
break;
}
if ( lineComment )
break;
}
}
if ( !token.IsEmpty() )
tokenList.Add( Token( token, row, tokenCol ) );
}
return tokenList;
}