mercredi 12 février 2020

Cannot use unique_ptr inside a map in a vector?

I would like to use unique_ptr inside map in vector. But I got an error message. I am not sure why and how to solve this problem.
This is the code.

#include <memory>

int main(int argc, char** argv)
{
    std::vector<std::map<int, std::unique_ptr<std::string>>> outputContainers;
    std::map<int, std::unique_ptr<std::string>> outputContainer;
    outputContainer[0] = std::make_unique<std::string>("test");
    outputContainers.push_back(std::move(outputContainer));
}

This is an error message.

Error C2280 'std::pair<const int,std::unique_ptr<std::string,std::default_delete<std::string>>>::pair(const std::pair<const int,std::unique_ptr<std::string,std::default_delete<std::string>>> &)': attempting to reference a deleted function test C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\include\xmemory  671 

Aucun commentaire:

Enregistrer un commentaire