Как я могу создать карту, которая может содержать сопоставленные значения двух разных типов?C++

Программы на C++. Форум разработчиков
Anonymous
Как я могу создать карту, которая может содержать сопоставленные значения двух разных типов?

Сообщение Anonymous »

Мне нужно создать std::map для названий тем (std::string) и сообщения ros2. Как объявить std::map, то есть ref_maps?
std::map ref_maps;

// one type
msgType1 msg1_t; // = ...with some value assigned;
msgType1::SharedPtr msg1_p; //-> ...with some value assigned, and notice, here is a SharedPtr
std::string topic_name1 = "t1";

// another type
msgType2 msg2_t;
msgType2::SharedPtr msg2_p;
std::string topic_name1 = "t2";

ref_maps[t1] = std::make_tuple(msg1_t, msg1_p);
ref_maps[t2] = std::make_tuple(msg2_t, msg2_p);

Возможно ли это или есть ли какой-либо другой способ реализовать аналогичный результат?

Различны ли типы сообщений ros2 (и ::SharedPtr), наследуемый от некоторого базового класса, чтобы я мог объявить ref_maps следующим образом:
std::map ref_maps;


Подробнее здесь: https://stackoverflow.com/questions/786 ... rent-types

Вернуться в «C++»