我尝试将foo
对象存储到std::reference_wrapper
中,但我最终得到了一个我不理解的编译错误。
#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 );
}
编译器错误非常冗长,但归结为:
error: no matching function for call to ‘std::reference_wrapper<foo>::reference_wrapper()’
我究竟做错了什么?