adapt std::complex tuple and hash support