Add a constructor and open that take only a single path argument, and then synthesize the real path names by concatenating ".ndx" and ".dat". The initial use case is writing generic test code that also needs to construct or open the basic btree tree types - btree_set, btree_multiset, btree_map, btree_multimap, with their functions that take a single path argument.
bt_time: abstract away differences in value_type and random value generation, thus enabling testing of more btree container types.
Fix btree_set_index constructor calling wrong open. Fix obsolete comment in btree_bases.hpp. Supply missing functions in index_bases. Add string_view_volume_test to index_unit_test.cpp. Add class=btree_set_index-string_view option (and its underlying test) to bt_time.
Modify stl_test.cpp to use test_traits.hpp. Work in progress. Aim is to make it much easier to write tests that cover multiple containers without having to repeat so much code, and figure out the mechanism for generalization from scratch each time.
Unstable work in progress. insert_test/stl_test.cpp() working, but just getting started on other tests.
All tests passing, but lower_bound and upper_bound test with key that may or may not exist still commented out.
All tests now fully functional. Dump/reload/restart not fully functional because rng state is not being dumped/reloaded and maps need to dump/restore mapped data. It is not clear the dump/reload/restart facility is even needed; AFAICR it has never been used for real testing.
Add heterogeneous key compares for indexes. Add missing index functions. Activate, expand, heterogeneous_key_test. Update docs, but only synopsis so far.
Tweak
Initial commit; start with copy of btree_set_index.hpp
Oops! Start work on btree_map_index.hpp, and notice that btree_multiset_index name is misspelled. Commit before switching back to develop to deal with that misspelling (and lack of tests that would have detected the misspelling).
Fix global misspelling of btree_multiset_index. Affected index_unit_test.cpp, too, and that's probably why it wasn't detected.
Merge branch 'develop' into feature/btree_map_index
Add class btree_map_index, class btree_multimap_index. Trivial test passing.
Fix a cut-and-paste error in btree_multiset_index. Add some tests. All four index types passing insert tests. Dereferencing iterators not working.
Work in progress before converting IndexTraits to a template template parameter to support maps.
Sets passing, maps commented out.
btree_map_index and btree_multimap_index passing preliminary tests, including iteration and dereferencing, for both fixed and variable length types.
Fix two-phase name lookup goofs detected by gcc but not VC++.
Rename "btree_*_index" to "btree_index_*". I visualize it as a "B-tree indexed map" rather than a "B-tree map of an index". Also kept subconsciously writing btree_index_map, etc. and then having to correct. Bike shed for sure; maybe someone else has a more compelling set of names.