ENH: improve overall consistency of the HashTable and its iterators
- previously had a mismash of const/non-const attributes on iterators that were confused with the attributes of the object being accessed. - use the iterator keys() and object() methods consistently for all internal access of the HashTable iterators. This makes the intention clearer, the code easier to maintain, and protects against any possible changes in the definition of the operators. - 'operator*': The standard form expected by STL libraries. However, for the std::map, this dereferences to a <key,value> pair, whereas OpenFOAM dereferences simply to <value>. - 'operator()': OpenFOAM treats this like the 'operator*' - adjusted the values of end() and cend() to reinterpret from nullObject instead of returning a static iteratorEnd() object. This means that C++ templates can now correctly deduce and match the return types from begin() and end() consistently. So that range-based now works. Eg, HashTable<label> table1 = ...; for (auto i : table1) { Info<< i << endl; } Since the 'operator*' returns hash table values, this prints all the values in the table.
Showing
- applications/test/HashTable/Test-hashTable.C 6 additions, 0 deletionsapplications/test/HashTable/Test-hashTable.C
- src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTable.C 6 additions, 11 deletions...penFOAM/containers/HashTables/HashPtrTable/HashPtrTable.C
- src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTable.H 4 additions, 4 deletions...penFOAM/containers/HashTables/HashPtrTable/HashPtrTable.H
- src/OpenFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C 8 additions, 18 deletions...nFOAM/containers/HashTables/HashPtrTable/HashPtrTableIO.C
- src/OpenFOAM/containers/HashTables/HashSet/HashSet.C 7 additions, 10 deletionssrc/OpenFOAM/containers/HashTables/HashSet/HashSet.C
- src/OpenFOAM/containers/HashTables/HashSet/HashSet.H 2 additions, 2 deletionssrc/OpenFOAM/containers/HashTables/HashSet/HashSet.H
- src/OpenFOAM/containers/HashTables/HashTable/HashTable.C 14 additions, 15 deletionssrc/OpenFOAM/containers/HashTables/HashTable/HashTable.C
- src/OpenFOAM/containers/HashTables/HashTable/HashTable.H 167 additions, 159 deletionssrc/OpenFOAM/containers/HashTables/HashTable/HashTable.H
- src/OpenFOAM/containers/HashTables/HashTable/HashTableI.H 101 additions, 123 deletionssrc/OpenFOAM/containers/HashTables/HashTable/HashTableI.H
- src/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C 8 additions, 11 deletionssrc/OpenFOAM/containers/HashTables/HashTable/HashTableIO.C
- src/OpenFOAM/containers/HashTables/StaticHashTable/StaticHashTable.H 1 addition, 4 deletions...M/containers/HashTables/StaticHashTable/StaticHashTable.H
Please register or sign in to comment