support constructing from const array

* support constructing from const array by adding Assignment operator
overload.
* support make_pair macro by adding Assignment operator overload from
std::pair