Minsky
anonymous_namespace{CSVParser.cc}::Tokens< T > Class Template Reference
Collaboration diagram for anonymous_namespace{CSVParser.cc}::Tokens< T >:
Collaboration graph

Public Member Functions

operator[] (const string &x)
 
const string & operator[] (T i) const
 

Private Attributes

unordered_map< string, T > tokens
 
vector< const string * > tokenRefs
 
string empty
 

Detailed Description

template<class T>
class anonymous_namespace{CSVParser.cc}::Tokens< T >

Definition at line 203 of file CSVParser.cc.

Member Function Documentation

◆ operator[]() [1/2]

template<class T>
T anonymous_namespace{CSVParser.cc}::Tokens< T >::operator[] ( const string &  x)
inline

Definition at line 209 of file CSVParser.cc.

209  {
210  auto i=tokens.find(x);
211  if (i==tokens.end())
212  {
213  i=tokens.emplace(x, tokenRefs.size()).first;
214  tokenRefs.push_back(&(i->first));
215  }
216  return i->second;
217  }
vector< const string * > tokenRefs
Definition: CSVParser.cc:206
unordered_map< string, T > tokens
Definition: CSVParser.cc:205

◆ operator[]() [2/2]

template<class T>
const string& anonymous_namespace{CSVParser.cc}::Tokens< T >::operator[] ( i) const
inline

Definition at line 218 of file CSVParser.cc.

218  {
219  if (i<tokenRefs.size()) return *tokenRefs[i];
220  return empty;
221  }
vector< const string * > tokenRefs
Definition: CSVParser.cc:206

Member Data Documentation

◆ empty

template<class T>
string anonymous_namespace{CSVParser.cc}::Tokens< T >::empty
private

Definition at line 207 of file CSVParser.cc.

◆ tokenRefs

template<class T>
vector<const string*> anonymous_namespace{CSVParser.cc}::Tokens< T >::tokenRefs
private

Definition at line 206 of file CSVParser.cc.

◆ tokens

template<class T>
unordered_map<string, T> anonymous_namespace{CSVParser.cc}::Tokens< T >::tokens
private

Definition at line 205 of file CSVParser.cc.


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