Witam.
Mam błąd:
Utils/Utils.h:15:122: error: default argument given for parameter 2 of 'std::pair<int, std::__cxx11::basic_string<char> > choice(const string&, const std::unordered_map<int, >std::__cxx11::basic_string<char> >&)' [-fpermissive]
std::pair<int, std::string> choice(const std::string&, const std::unordered_map<int, std::string>& = {{1, "Y"}, {2, "N"}});
Gdzie w deklaracji przekazuję domyślny argument, w definicji już nie, więc błędu podobno być nie powinno.
Utils.h
std::pair<int, std::string> choice(const std::string&, const std::unordered_map<int, std::string>& = {{1, "Y"}, {2, "N"}});
Utils.cpp
std::pair<int, std::string> choice(const std::string &text, const std::unordered_map<int, std::string> &map) { ... }
Próbowałem również na odwrót, czyli domyślny argument w definicji, nie deklaracji, ale wtedy dostaję błąd:
main.cpp:103:53: error: too few arguments to function 'std::pair<int, std::__cxx11::basic_string<char> > choice(const string&, const std::unordered_map<int, >std::__cxx11::basic_string<char> >&)'
auto i = choice("Do you want to delete windows?");
przy wywołaniu.
Nie wiem w czym może leżeć problem, ponieważ w każdym wątku jaki widziałem o tym błędzie odpowiadający piszą, że domyślny argument powinien być w deklaracji albo w definicji, nie w obu naraz.
Z góry dziękuję za pomoc.
Pozdrawiam.