Ho tentato di memorizzare un oggetto foo
in un std::reference_wrapper
, ma alla fine ho riscontrato un errore del compilatore che non capisco.Memorizzazione di riferimenti in una mappa
#include <functional>
#include <map>
struct foo
{
};
int main()
{
std::map< int, std::reference_wrapper<foo> > my_map;
foo a;
my_map[ 0 ] = std::ref(a);
}
L'errore del compilatore è abbastanza lungo, ma si riduce a questo:
error: no matching function for call to ‘std::reference_wrapper<foo>::reference_wrapper()’
Che cosa sto facendo di sbagliato?
std :: reference_wrapper non ha alcun costruttore predefinito –