File indexing completed on 2026-04-09 07:49:55
0001 #pragma once
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include <string>
0014 #include <vector>
0015 #include <sstream>
0016 #include <iomanip>
0017
0018 struct suniquename
0019 {
0020 static int Add(const char* name, std::vector<std::string>& names ) ;
0021 static std::string Desc( const std::vector<std::string>& names ) ;
0022 };
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 inline int suniquename::Add( const char* name, std::vector<std::string>& names )
0035 {
0036 size_t size = names.size() ;
0037 size_t idx = std::distance( names.begin(), std::find( names.begin(), names.end(), name ) );
0038 if(idx == size) names.push_back(name) ;
0039 return idx ;
0040 }
0041
0042 inline std::string suniquename::Desc( const std::vector<std::string>& names )
0043 {
0044 std::stringstream ss ;
0045 for(size_t i=0 ; i < names.size() ; i++ ) ss << std::setw(7) << i << " : " << names[i] << std::endl ;
0046 std::string str = ss.str();
0047 return str ;
0048 }
0049