[#DFDB241993DFD63308868E90931BF4C422EC6451]
Constructor
param(param const& other) = default;
Upon construction, this becomes a copy of `other`.
this->key == other.key && this->value == other.value && this->has_value == other.has_value
Linear in `other.key.size() + other.value.size()`.
Calls to allocate may throw.