【发布时间】:2020-11-04 03:59:54
【问题描述】:
给定以下模板类:
template<typename Container>
Class A
{
public:
A() : {}
bool push(std::shared_ptr<Container> container)
{
ptr_vec.emplace_back(container)
}
void load(Container c)
{
push(std::make_shared((Container)std::move(c));
}
private:
std::vector<std::shared_ptr<Container>> ptr_vec;
};
以及main.cpp中的以下代码:
A<std::string> my_A {};
my_A.load("Hello");
我收到以下错误:
错误:没有匹配函数调用 'make_shared(std::__cxx11::basic_string谁能解释一下这个错误,以及如何解决它?
【问题讨论】:
标签: c++ class c++11 templates smart-pointers