working hmap class

This commit is contained in:
Timur A. Fatkhullin
2026-09-02 21:18:07 +03:00
parent a49e7b5d5f
commit d35d356784
2 changed files with 46 additions and 30 deletions

View File

@@ -182,23 +182,8 @@ int main()
std::print("push element with key '{}' and value {}\t...", k2, s1);
ok = hm.push(
k2, s1,
[](auto const& v) -> decltype(hm)::hmap_expected_t<const char*> {
return v.c_str();
// if (v) {
// return v.c_str();
// } else {
// return std::unexpected(v.error());
// }
},
[](auto const& v) -> decltype(hm)::hmap_expected_t<std::string> {
return std::string(v.value());
// if (v) {
// return std::string(v.value());
// } else {
// return std::unexpected(v.error());
// }
});
k2, s1, [](auto const& v) -> hmap_expected_t<const char*> { return v.c_str(); },
[](auto const& v) -> hmap_expected_t<std::string> { return std::string(v); });
if (!ok) {
std::println("cannot insert the value {}", s1);
} else {
@@ -213,6 +198,8 @@ int main()
std::println("OK");
}
std::println("in total {} elelents were pushed", hm.size());
std::println("\n");
std::print("get '{}'-element as double: ", k1);
@@ -223,5 +210,15 @@ int main()
std::println("FAIL");
}
std::println("\n");
std::print("get '{}'-element as const char*: ", k2);
auto sp2 = hm.get<const char*>(k2);
if (sp2) {
std::println("{}", sp2.value());
} else {
std::println("FAIL");
}
return 0;
}