ARTS  2.2.66
my_basic_string< charT > Class Template Reference

The implementation for String, the ARTS string class. More...

#include <mystring.h>

Inheritance diagram for my_basic_string< charT >:
Collaboration diagram for my_basic_string< charT >:

Public Types

typedef Index size_type
 

Public Member Functions

 my_basic_string ()
 Default constructor. More...
 
 my_basic_string (Index n, char c=' ')
 Constructor setting size. More...
 
 my_basic_string (const std::basic_string< charT > &A, Index pos=0, Index numpos=my_basic_string< charT >::npos)
 Construnctor from a basic_string. More...
 
 my_basic_string (const char A[])
 Constructor from a C-style char array. More...
 
my_basic_stringoperator= (const my_basic_string< charT > &A)
 Assignment from another my_basic_string. More...
 
void insert_substr (const my_basic_string< charT > &searchstr, const my_basic_string< charT > &insstr)
 Insert string before all occurrences of the substring. More...
 
void split (Array< my_basic_string< charT > > &aos, const my_basic_string< charT > &delim) const
 Split string into substrings. More...
 
void toupper ()
 Convert to upper case. More...
 
void tolower ()
 Convert to lower case. More...
 
void trim ()
 Trim leading and trailing whitespace. More...
 
Index nelem () const
 Number of elements. More...
 
char operator[] (Index n) const
 Constant index operator. More...
 
char & operator[] (Index n)
 Non-constant index operator. More...
 

Static Public Attributes

static const Index npos = static_cast<Index>(std::basic_string<charT>::npos)
 Define npos: More...
 

Detailed Description

template<class charT>
class my_basic_string< charT >

The implementation for String, the ARTS string class.

This adds some additional functionality to the standard stl string class, notably:

a) Range checking by assert

b) nelem() member function, return the size of the String of type Index.

The type string is just a typedef for basic_string<char>. Therefore, to make everything work correctly, we have to derive our own class from basic_string, not from string directly.

Definition at line 63 of file mystring.h.

Member Typedef Documentation

◆ size_type

template<class charT>
typedef Index my_basic_string< charT >::size_type

Definition at line 107 of file mystring.h.

Constructor & Destructor Documentation

◆ my_basic_string() [1/4]

template<class charT >
my_basic_string< charT >::my_basic_string ( )
inline

Default constructor.

Definition at line 118 of file mystring.h.

◆ my_basic_string() [2/4]

template<class charT >
my_basic_string< charT >::my_basic_string ( Index  n,
char  c = ' ' 
)
inlineexplicit

Constructor setting size.

You may give as a second argument a character with which to fill the new string. Per default this is zero.

Parameters
nNumber of characters
cOptional fill character

Definition at line 130 of file mystring.h.

◆ my_basic_string() [3/4]

template<class charT>
my_basic_string< charT >::my_basic_string ( const std::basic_string< charT > &  A,
Index  pos = 0,
Index  numpos = my_basic_string<charT>::npos 
)
inline

Construnctor from a basic_string.

This is important for handling of expressions like this to work correctly:

String a = b+'.'+c

As for basic_string, this constructor can also be used to initialize the new string from a subrange of the original string.

Parameters
AThe original string
posStart position (0 means from the beginning)
numposHow many characters to copy

Definition at line 148 of file mystring.h.

◆ my_basic_string() [4/4]

template<class charT>
my_basic_string< charT >::my_basic_string ( const char  A[])
inline

Constructor from a C-style char array.

Definition at line 184 of file mystring.h.

Member Function Documentation

◆ insert_substr()

template<class charT>
void my_basic_string< charT >::insert_substr ( const my_basic_string< charT > &  searchstr,
const my_basic_string< charT > &  insstr 
)
inline

Insert string before all occurrences of the substring.

Parameters
[in]searchstrString to search for.
[in]insstrString to insert.

Definition at line 208 of file mystring.h.

Referenced by write_method_header_documentation().

◆ nelem()

◆ operator=()

template<class charT>
my_basic_string< charT > & my_basic_string< charT >::operator= ( const my_basic_string< charT > &  A)
inline

Assignment from another my_basic_string.

The two partners do not have to have the same size. Size of the target string is adjusted automatically, just as string does it.

Definition at line 195 of file mystring.h.

◆ operator[]() [1/2]

template<class charT >
char my_basic_string< charT >::operator[] ( Index  n) const
inline

Constant index operator.

We redifine this here so that we can have range checking by assert.

Parameters
[in]nIndex

Definition at line 293 of file mystring.h.

Referenced by my_basic_string< char >::tolower().

◆ operator[]() [2/2]

template<class charT >
char & my_basic_string< charT >::operator[] ( Index  n)
inline

Non-constant index operator.

We redifine this here so that we can have range checking by assert.

Parameters
[in]nIndex

Definition at line 308 of file mystring.h.

◆ split()

template<class charT>
void my_basic_string< charT >::split ( Array< my_basic_string< charT > > &  aos,
const my_basic_string< charT > &  delim 
) const
inline

Split string into substrings.

Parameters
[out]aosArrayOfString containing the returned substrings.
[in]delimDelimiter string.

Definition at line 233 of file mystring.h.

Referenced by abs_linesReadFromHitran(), get_dirname(), parse_part_material(), parse_part_size(), parse_partfield_name(), parse_psd_param(), and LineRecord::ReadFromHitran2004Stream().

◆ tolower()

template<class charT>
void my_basic_string< charT >::tolower ( )
inline

Convert to lower case.

Definition at line 91 of file mystring.h.

Referenced by abs_linesReadFromHitran(), and my_basic_string< char >::tolower().

◆ toupper()

template<class charT>
void my_basic_string< charT >::toupper ( )
inline

Convert to upper case.

Definition at line 87 of file mystring.h.

Referenced by atm_fields_compactFromMatrix(), chk_griddedfield_gridname(), and my_basic_string< char >::toupper().

◆ trim()

Member Data Documentation

◆ npos

template<class charT>
const Index my_basic_string< charT >::npos = static_cast<Index>(std::basic_string<charT>::npos)
static

The documentation for this class was generated from the following file: