Heterogeneous Active Messages C++ library