+ throw type_mismatch(typeid(T), (store ? store->type_id() : typeid(void)));
+ return s;
+ }
+
+public:
+ template<typename T>
+ T &value()
+ {
+ return get_typed_store<T>()->data;
+ }
+
+ template<typename T>
+ const T &value() const
+ {
+ return get_typed_store<T>()->data;