Мне интересно, можно ли использовать шаблон в качестве ключа для карты. Например:Использование шаблонов в качестве ключей в std :: map
std::map< <T> , Node> nodes;
В сущности, то, что я хочу сделать, это быть в состоянии иметь кучу узлов, содержащих произвольные типы данных, и сконструированы по этим данным. Я думаю, что я мог бы сделать это, преобразовывая указанные данные в двоичные и ключевые данные, но это грязно, и я хочу избежать этого.
Чтобы уточнить, я хочу иметь возможность использовать переменную любого типа в качестве ключа. Например, если у меня есть 2 узла, один из которых содержит int как свои данные, а другой, который содержит Foo в качестве своих данных, я хочу, чтобы их можно было помещать на той же карте, используя свои данные в качестве ключа. Возможно, карта не то, что я хочу, я не уверен ...
Мысли? Спасибо!
Чтобы создать экземпляр этого класса, вам необходимо выбрать определенный тип. Однако вы можете взглянуть на Boost Any: http://www.boost.org/doc/libs/1_61_0/doc/html/any.html. –
Непонятно, что вы пытаетесь сделать – Slava
Время выполнения или время компиляции? Если время компиляции, вы не ищете шаблон constexpr ...? Если runtime, typeid, как показано ниже. –
lorro