add str_printf returning std::string