У меня возникли некоторые трудности с тем, чтобы обернуть голову вокруг этого, вероятно, из-за того, что я не полностью понимаю основную механику.
У меня есть структура, подобная следующей:
template <class T>
struct A {
int id;
T x;
}
Эта структура затем используется как тип для shared_ptr:
typedef std::shared_ptr<A> A_ptr;
, которая, в свою очередь, сохраняется вкарта:
typedef unordered_map<int , A_ptr> AMap;
Однако, когда я компилирую, я получаю следующую ошибку:
> error: type/value mismatch at argument 1 in template parameter list
> for 'template<class _Tp> class std::shared_ptr' typedef
> std::shared_ptr<A> A_ptr;
Я прочитал другие посты об аналогичной проблеме, но все они рекомендуют создатьshared_ptr А внутри структуры.Я пробовал это, хотя я не могу логически понять, почему это помогло бы решить мою проблему, но это не работает.Любая помощь приветствуется.