// static std::unordered_map<int, smpi_key_elem> keyvals_;
// static int keyval_id_;
template <typename T> static int keyval_create(smpi_copy_fn copy_fn, smpi_delete_fn delete_fn, int* keyval, void* extra_statee);
// static std::unordered_map<int, smpi_key_elem> keyvals_;
// static int keyval_id_;
template <typename T> static int keyval_create(smpi_copy_fn copy_fn, smpi_delete_fn delete_fn, int* keyval, void* extra_statee);