#include <map>
template <typename Map>
class RestrictedMap
{
public: // Typedefs
typedef typename Map::key_type KeyType;
typedef typename Map::mapped_type MapType;
public: // Methods
// TODO: Write your methods here.
void Add(const KeyType &key, const MapType &map);
private: // Members
Map m_map;
};
typedef RestrictedMap<std::map<int, int> > StlMap; // TODO: Change your map's key and data type
//typedef RestrictedMap<boost::ptr_map<int, int>> BoostMap; // TODO: Change your map's key and data
int main()
{
StlMap stlMap;
// BoostMap boostMap;
}
I2luY2x1ZGUgPG1hcD4KIAp0ZW1wbGF0ZSA8dHlwZW5hbWUgTWFwPgpjbGFzcyBSZXN0cmljdGVkTWFwCnsKcHVibGljOiAvLyBUeXBlZGVmcwogICAgdHlwZWRlZiB0eXBlbmFtZSBNYXA6OmtleV90eXBlIEtleVR5cGU7CiAgICB0eXBlZGVmIHR5cGVuYW1lIE1hcDo6bWFwcGVkX3R5cGUgTWFwVHlwZTsKIApwdWJsaWM6IC8vIE1ldGhvZHMKICAgIC8vIFRPRE86IFdyaXRlIHlvdXIgbWV0aG9kcyBoZXJlLgogICAgdm9pZCBBZGQoY29uc3QgS2V5VHlwZSAma2V5LCBjb25zdCBNYXBUeXBlICZtYXApOwogCnByaXZhdGU6IC8vIE1lbWJlcnMKICAgIE1hcCBtX21hcDsKfTsKIAp0eXBlZGVmIFJlc3RyaWN0ZWRNYXA8c3RkOjptYXA8aW50LCBpbnQ+ID4gU3RsTWFwOyAvLyBUT0RPOiBDaGFuZ2UgeW91ciBtYXAncyBrZXkgYW5kIGRhdGEgdHlwZQovL3R5cGVkZWYgUmVzdHJpY3RlZE1hcDxib29zdDo6cHRyX21hcDxpbnQsIGludD4+IEJvb3N0TWFwOyAvLyBUT0RPOiBDaGFuZ2UgeW91ciBtYXAncyBrZXkgYW5kIGRhdGEKIAppbnQgbWFpbigpCnsKICAgICAgICBTdGxNYXAgc3RsTWFwOwovLyAgICAgIEJvb3N0TWFwIGJvb3N0TWFwOwp9