Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2020
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. #include <utility>
  5. #include <string>
  6.  
  7. int main() {
  8.     std::cout << "Vectors are easy!" << std::endl;
  9.     typedef std::vector<std::string> strvec;
  10.     typedef std::map<std::string, std::pair<std::string, strvec>> namemap;
  11.  
  12.     namemap myMap;
  13.  
  14.     myMap.insert({"McDonald", {"Scottish", {"Mike", "Matt", "Marge"}}});
  15.     myMap.insert({"Smith", {"English", {"Sam", "Slick", "Susan"}}});
  16.  
  17.     myMap.insert({"Smith", {5, {"Sam", "Slick", "Susan"}}}); // Whoops, we put an int instead of a string for the first part of the pair.
  18.  
  19.     return 0;
  20. }
  21.  
  22. /* This is the bullshit the compiler gives us
  23.  
  24.  
  25. wat.cpp: In function ‘int main()’:
  26. wat.cpp:17:56: error: no matching function for call to ‘std::map<std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >::insert(<brace-enclosed initializer list>)’
  27.   myMap.insert({"Smith", {5, {"Sam", "Slick", "Susan"}}});
  28.                                                         ^
  29. In file included from /usr/include/c++/7/map:61:0,
  30.                  from wat.cpp:3:
  31. /usr/include/c++/7/bits/stl_map.h:795:7: note: candidate: std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const value_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >]
  32.        insert(const value_type& __x)
  33.        ^~~~~~
  34. /usr/include/c++/7/bits/stl_map.h:795:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const value_type& {aka const std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >&}’
  35. /usr/include/c++/7/bits/stl_map.h:802:7: note: candidate: std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::value_type&&) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >]
  36.        insert(value_type&& __x)
  37.        ^~~~~~
  38. /usr/include/c++/7/bits/stl_map.h:802:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::map<std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >::value_type&& {aka std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >&&}’
  39. /usr/include/c++/7/bits/stl_map.h:808:2: note: candidate: template<class _Pair> std::__enable_if_t<std::is_constructible<std::pair<const _Key, _Tp>, _Pair>::value, std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> > std::map<_Key, _Tp, _Compare, _Alloc>::insert(_Pair&&) [with _Pair = _Pair; _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >]
  40.   insert(_Pair&& __x)
  41.   ^~~~~~
  42. /usr/include/c++/7/bits/stl_map.h:808:2: note:   template argument deduction/substitution failed:
  43. wat.cpp:17:56: note:   couldn't deduce template parameter ‘_Pair’
  44.   myMap.insert({"Smith", {5, {"Sam", "Slick", "Susan"}}});
  45.                                                         ^
  46. In file included from /usr/include/c++/7/map:61:0,
  47.                  from wat.cpp:3:
  48. /usr/include/c++/7/bits/stl_map.h:822:7: note: candidate: void std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >]
  49.        insert(std::initializer_list<value_type> __list)
  50.        ^~~~~~
  51. /usr/include/c++/7/bits/stl_map.h:822:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::initializer_list<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >’
  52. /usr/include/c++/7/bits/stl_map.h:852:7: note: candidate: std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, const value_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >]
  53.        insert(const_iterator __position, const value_type& __x)
  54.        ^~~~~~
  55. /usr/include/c++/7/bits/stl_map.h:852:7: note:   candidate expects 2 arguments, 1 provided
  56. /usr/include/c++/7/bits/stl_map.h:862:7: note: candidate: std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, std::map<_Key, _Tp, _Compare, _Alloc>::value_type&&) [with _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::iterator = std::_Rb_tree_iterator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator = std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >; std::map<_Key, _Tp, _Compare, _Alloc>::value_type = std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > >]
  57.        insert(const_iterator __position, value_type&& __x)
  58.        ^~~~~~
  59. /usr/include/c++/7/bits/stl_map.h:862:7: note:   candidate expects 2 arguments, 1 provided
  60. /usr/include/c++/7/bits/stl_map.h:867:2: note: candidate: template<class _Pair> std::__enable_if_t<std::is_constructible<std::pair<const _Key, _Tp>, _Pair>::value, typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename __gnu_cxx::__alloc_traits<_Allocator>::rebind<std::pair<const _Key, _Tp> >::other>::iterator> std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::map<_Key, _Tp, _Compare, _Alloc>::const_iterator, _Pair&&) [with _Pair = _Pair; _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >]
  61.   insert(const_iterator __position, _Pair&& __x)
  62.   ^~~~~~
  63. /usr/include/c++/7/bits/stl_map.h:867:2: note:   template argument deduction/substitution failed:
  64. wat.cpp:17:56: note:   candidate expects 2 arguments, 1 provided
  65.   myMap.insert({"Smith", {5, {"Sam", "Slick", "Susan"}}});
  66.                                                         ^
  67. In file included from /usr/include/c++/7/map:61:0,
  68.                  from wat.cpp:3:
  69. /usr/include/c++/7/bits/stl_map.h:885:2: note: candidate: template<class _InputIterator> void std::map<_Key, _Tp, _Compare, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Key = std::__cxx11::basic_string<char>; _Tp = std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > >; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::pair<std::__cxx11::basic_string<char>, std::vector<std::__cxx11::basic_string<char> > > > >]
  70.   insert(_InputIterator __first, _InputIterator __last)
  71.   ^~~~~~
  72. /usr/include/c++/7/bits/stl_map.h:885:2: note:   template argument deduction/substitution failed:
  73. wat.cpp:17:56: note:   candidate expects 2 arguments, 1 provided
  74.   myMap.insert({"Smith", {5, {"Sam", "Slick", "Susan"}}});
  75.  
  76.  
  77.  
  78. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement