Computing desk | ||
---|---|---|
< February 2 | << Jan | February | Mar >> | February 4 > |
Welcome to the Wikipedia Computing Reference Desk Archives |
---|
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages. |
First of all, thank you to everyone who helped me yesterday; I really appreciate it. Now, why doesn't the following code compile?
#include <unordered_map>
#include <vector>
#include <utility>
#include <iterator>
typedef std::vector<signed int> myvec;
typedef std::unordered_map<myvec, double, std::equal_to<std::vector<signed int> > > uom;
int f(){
myvec v;
uom S;
v.clear();
v.push_back(3);
v.push_back(-3);
S[v] = 4.4;
return (0);
}
The compiler gives a whole bunch of error messages starting with
Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/unordered_map:386:17: error: no matching function for call to object of type 'const std::__1::equal_to<std::__1::vector<int, std::__1::allocator<int> > >' {return static_cast<const _Hash&>(*this)(__x);} ^19:59, 3 February 2016 (UTC)19:59, 3 February 2016 (UTC)19:59, 3 February 2016 (UTC)19:59, 3 February 2016 (UTC)19:59, 3 February 2016 (UTC)19:59, 3 February 2016 (UTC)~ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__hash_table:2014:21: note: in instantiation of member function 'std::__1::__unordered_map_hasher<std::__1::vector<int, std::__1::allocator<int> >, std::__1::__hash_value_type<std::__1::vector<int, std::__1::allocator<int> >, double>, std::__1::equal_to<std::__1::vector<int, std::__1::allocator<int> > >, true>::operator()' requested here size_t __hash = hash_function()(__k);
I don't understand these messages, can anyone advise? Thanks, Robinh (talk) 19:59, 3 February 2016 (UTC)