Doxygen
VhdlString类 参考

Minimal string class with std::string like behaviour that fulfills the JavaCC string requirements. 更多...

#include <vhdlstring.h>

Public 成员函数

 VhdlString ()
 
 VhdlString (const VhdlString &other)
 
VhdlStringoperator= (const VhdlString &other)
 
 VhdlString (const char *s)
 
 VhdlString (const char *s, int size)
 
 ~VhdlString ()
 
VhdlStringappend (const char *s, int size)
 
VhdlStringappend (const char *s)
 
VhdlStringappend (const VhdlString &other)
 
VhdlString substr (int pos=0, int len=-1)
 
int copy (char *s, int len, int pos=0) const
 
const char * c_str () const
 
const char * data () const
 
int size () const
 
int length () const
 
char & operator[] (int i)
 
const char & operator[] (int i) const
 
void clear ()
 
VhdlStringoperator+= (char c)
 
VhdlStringoperator+= (const char *s)
 
VhdlStringoperator+= (VhdlString s)
 
VhdlString operator+ (const char *s)
 

Private 成员函数

void init ()
 

Private 属性

char * m_str
 
int m_len
 

详细描述

Minimal string class with std::string like behaviour that fulfills the JavaCC string requirements.

在文件 vhdlstring.h33 行定义.

构造及析构函数说明

◆ VhdlString() [1/4]

VhdlString::VhdlString ( )
inline

在文件 vhdlstring.h36 行定义.

37  {
38  init();
39  }

引用了 init().

被这些函数引用 substr().

◆ VhdlString() [2/4]

VhdlString::VhdlString ( const VhdlString other)
inline

在文件 vhdlstring.h40 行定义.

41  {
42  m_str = (char*)malloc(other.m_len+1);
43  memcpy(m_str,other.m_str,other.m_len);
44  m_len = other.m_len;
45  m_str[m_len]=0;
46  }

引用了 m_len , 以及 m_str.

◆ VhdlString() [3/4]

VhdlString::VhdlString ( const char *  s)
inline

在文件 vhdlstring.h59 行定义.

60  {
61  m_len = (int)strlen(s);
62  m_str=(char*)malloc(m_len+1);
63  memcpy(m_str,s,m_len+1);
64  }

引用了 m_len , 以及 m_str.

◆ VhdlString() [4/4]

VhdlString::VhdlString ( const char *  s,
int  size 
)
inline

在文件 vhdlstring.h65 行定义.

66  {
67  m_str = (char*)malloc(size+1);
68  memcpy(m_str,s,size);
69  m_str[size]=0;
70  m_len=size;
71  }

引用了 m_len, m_str , 以及 size().

◆ ~VhdlString()

VhdlString::~VhdlString ( )
inline

在文件 vhdlstring.h72 行定义.

73  {
74  free(m_str);
75  }

引用了 m_str.

成员函数说明

◆ append() [1/3]

VhdlString& VhdlString::append ( const char *  s)
inline

在文件 vhdlstring.h88 行定义.

89  {
90  return append(s,(int)strlen(s));
91  }

引用了 append().

◆ append() [2/3]

VhdlString& VhdlString::append ( const char *  s,
int  size 
)
inline

在文件 vhdlstring.h76 行定义.

77  {
78  int oldlen = m_len;
79  m_len+=size+1;
80  if (m_len)
81  {
82  m_str = (char*)realloc(m_str,m_len);
83  memcpy(m_str+oldlen,s,m_len-oldlen-1);
84  m_str[m_len-1]=0;
85  }
86  return *this;
87  }

引用了 m_len, m_str , 以及 size().

被这些函数引用 append(), operator+(), operator+() , 以及 operator+=().

◆ append() [3/3]

VhdlString& VhdlString::append ( const VhdlString other)
inline

在文件 vhdlstring.h92 行定义.

93  {
94  return append(other.m_str,other.m_len);
95  }

引用了 append(), m_len , 以及 m_str.

◆ c_str()

const char* VhdlString::c_str ( ) const
inline

在文件 vhdlstring.h108 行定义.

108 { return m_str; }

引用了 m_str.

◆ clear()

void VhdlString::clear ( )
inline

在文件 vhdlstring.h114 行定义.

114 { free(m_str); init(); }

引用了 init() , 以及 m_str.

◆ copy()

int VhdlString::copy ( char *  s,
int  len,
int  pos = 0 
) const
inline

在文件 vhdlstring.h100 行定义.

101  {
102  if (len==0) return 0;
103  if (pos>=m_len) { s[0]=0; return 0; }
104  int r=m_len<pos+len ? m_len-pos : len;
105  memcpy(s,m_str+pos,r);
106  return r;
107  }

引用了 m_len , 以及 m_str.

◆ data()

const char* VhdlString::data ( ) const
inline

在文件 vhdlstring.h109 行定义.

109 { return m_str; }

引用了 m_str.

◆ init()

void VhdlString::init ( )
inlineprivate

在文件 vhdlstring.h121 行定义.

121 { m_str=(char*)calloc(1,1); m_len=0; }

引用了 m_len , 以及 m_str.

被这些函数引用 clear() , 以及 VhdlString().

◆ length()

int VhdlString::length ( ) const
inline

在文件 vhdlstring.h111 行定义.

111 { return m_len; }

引用了 m_len.

◆ operator+()

VhdlString VhdlString::operator+ ( const char *  s)
inline

在文件 vhdlstring.h118 行定义.

118 { return append(s); }

引用了 append().

◆ operator+=() [1/3]

VhdlString& VhdlString::operator+= ( char  c)
inline

在文件 vhdlstring.h115 行定义.

115 { char s[2]; s[0]=c; s[1]=0; return append(s); }

引用了 append().

◆ operator+=() [2/3]

VhdlString& VhdlString::operator+= ( const char *  s)
inline

在文件 vhdlstring.h116 行定义.

116 { return append(s); }

引用了 append().

◆ operator+=() [3/3]

VhdlString& VhdlString::operator+= ( VhdlString  s)
inline

在文件 vhdlstring.h117 行定义.

117 { return append(s); }

引用了 append().

◆ operator=()

VhdlString& VhdlString::operator= ( const VhdlString other)
inline

在文件 vhdlstring.h47 行定义.

48  {
49  if (this!=&other)
50  {
51  free(m_str);
52  m_str = (char*)malloc(other.m_len+1);
53  memcpy(m_str,other.m_str,other.m_len);
54  m_len = other.m_len;
55  m_str[m_len]=0;
56  }
57  return *this;
58  }

引用了 m_len , 以及 m_str.

◆ operator[]() [1/2]

char& VhdlString::operator[] ( int  i)
inline

在文件 vhdlstring.h112 行定义.

112 { return m_str[i]; }

引用了 m_str.

◆ operator[]() [2/2]

const char& VhdlString::operator[] ( int  i) const
inline

在文件 vhdlstring.h113 行定义.

113 { return m_str[i]; }

引用了 m_str.

◆ size()

int VhdlString::size ( ) const
inline

在文件 vhdlstring.h110 行定义.

110 { return m_len; }

引用了 m_len.

被这些函数引用 append() , 以及 VhdlString().

◆ substr()

VhdlString VhdlString::substr ( int  pos = 0,
int  len = -1 
)
inline

在文件 vhdlstring.h96 行定义.

97  {
98  return VhdlString(m_str?m_str+pos:0,len==-1?m_len-pos:m_len);
99  }

引用了 m_len, m_str , 以及 VhdlString().

类成员变量说明

◆ m_len

int VhdlString::m_len
private

在文件 vhdlstring.h123 行定义.

被这些函数引用 append(), copy(), init(), length(), operator=(), size(), substr() , 以及 VhdlString().

◆ m_str

char* VhdlString::m_str
private

在文件 vhdlstring.h122 行定义.

被这些函数引用 append(), c_str(), clear(), copy(), data(), init(), operator=(), operator[](), substr(), VhdlString() , 以及 ~VhdlString().


该类的文档由以下文件生成:
VhdlString::m_len
int m_len
Definition: vhdlstring.h:123
VhdlString::m_str
char * m_str
Definition: vhdlstring.h:122
VhdlString::append
VhdlString & append(const char *s, int size)
Definition: vhdlstring.h:76
VhdlString::size
int size() const
Definition: vhdlstring.h:110
VhdlString::VhdlString
VhdlString()
Definition: vhdlstring.h:36
VhdlString::init
void init()
Definition: vhdlstring.h:121