Demonstrates policy-based container with pluggable storage.
Demonstrates policy-based container with pluggable storage.Shows dynamic_storage_policy and indexed_storage_policy for different access patterns and performance characteristics.
- See also
- kcenon::container::basic_value_container
-
kcenon::container::policy::dynamic_storage_policy
#include <kcenon/container/policy_container.h>
#include <kcenon/container/storage_policy.h>
#include <iostream>
#include <string>
{
std::cout << "=== Policy Container Example ===" << std::endl;
std::cout << "\n1. Dynamic storage policy:" << std::endl;
basic_value_container<policy::dynamic_storage_policy> dynamic_container;
dynamic_container.set("name", "Alice");
dynamic_container.set("score", 95.5);
dynamic_container.set("level", static_cast<int64_t>(42));
std::cout << " Added 3 fields to dynamic container" << std::endl;
std::cout << " Size: " << dynamic_container.size() << std::endl;
std::cout << "\n2. Indexed storage policy:" << std::endl;
basic_value_container<policy::indexed_storage_policy> indexed_container;
indexed_container.set("id", static_cast<int64_t>(1001));
indexed_container.set("status", "active");
std::cout << " Added 2 fields to indexed container" << std::endl;
std::cout << " Size: " << indexed_container.size() << std::endl;
std::cout << "\n3. Storage policy traits:" << std::endl;
std::cout << " dynamic_storage_policy satisfies StoragePolicy: "
<< policy::StoragePolicy<policy::dynamic_storage_policy> << std::endl;
std::cout << " indexed_storage_policy satisfies StoragePolicy: "
<< policy::StoragePolicy<policy::indexed_storage_policy> << std::endl;
std::cout << "\nDone." << std::endl;
return 0;
}