5 template<typename Container, typename Key>
8 template<typename Container, typename Key, typename KeyStore = Key>
14 Variant(Container st, const Key& i) : index(i), state(st) {}
18 return Accessor<Container, KeyStore>::template get<T>(state, index);
22 class AutoCleanVariant : public Variant<XX*, int> {
24 AutoCleanVariant(XX* st, int i) : Variant<XX*,int>(st,i) {}
28 return Variant<XX*, int>::operator T();