ARTS  1.0.222
Public Member Functions | Static Public Attributes | List of all members
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 >:

Public Member Functions

 my_basic_string ()
 Default constructor. More...
 
 my_basic_string (Index n, char c=' ')
 Constructor setting size. More...
 
 my_basic_string (const basic_string< charT > &A, Index pos=0, Index npos=my_basic_string< charT >::npos)
 Construnctor from another my_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...
 
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 std::string is just a typedef for std::basic_string<char>. Therefore, to make everything work correctly, we have to derive our own class from std::basic_string, not from std::string directly.

Definition at line 60 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 98 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 109 of file mystring.h.

◆ my_basic_string() [3/4]

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

Construnctor from another my_basic_string.

Construnctor from a basic_string. This is important for handling of expressions like this to work correctly:

String a = b+'.'+c

As for std::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)
nposHow many characters to copy

Definition at line 131 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 165 of file mystring.h.

Member Function Documentation

◆ nelem()

template<class charT >
Index my_basic_string< charT >::nelem
inline

Number of elements.

Definition at line 185 of file mystring.h.

◆ 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.

Note that my_basic_string behaves differently from Vector, Matrix, and Array here. The two partners do not have to have the same size. Size of the target string is adjusted automatically, just as std::string does it.

Definition at line 177 of file mystring.h.

◆ operator[]() [1/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.

Definition at line 246 of file mystring.h.

◆ operator[]() [2/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.

Definition at line 236 of file mystring.h.

Member Data Documentation

◆ npos

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

Define npos:

Definition at line 87 of file mystring.h.


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