#include <map>
#include <utility>
template<typename key_t_,typename my_data_t_>
struct my_container
{
my_data_t_& operator()(key_t_ x_, key_t_ y_)
{
return my_set[std::make_pair(x_,y_)];
}
my_data_t_ const & operator()(key_t_ x_, key_t_ y_) const
{
return my_set[std::make_pair(x_,y_)];
}
private:
std::map<std::pair<key_t_,key_t_>,my_data_t_> my_set;
};
struct dummy {};
int main()
{
my_container<int,dummy> cont;
cont(1,2) = dummy();
return 0;
}