есть класс (tcp сокет), у него метод open (задание носта и порта куда коннектится)
прототипы:
void open(const std::string& address, int service, bool nonblock = false);
void open(const std::string& address, int service, unsigned int milliseconds);
при попытке позвать его внутри метода моего класса
CommClient::CommClient(const std::string& host, int port)
{
m_clientSocket.open(host,port,10);
компилер ругается
g++ -O3 -Wall -osrc/CommClient.o ../src/CommClient.cpp
../src/CommClient.cpp: In constructor `CommClient::CommClient(const std::string&, int)’:
../src/CommClient.cpp:6: error: call of overloaded `open(const std::basic_string, std::allocator >&, int&, int)' is ambiguous
skstream.h:299: note: candidates are: void tcp_socket_stream::open(const std::string&, int, bool)
skstream.h:300: note: void tcp_socket_stream::open(const std::string&, int, unsigned int)
если захардкодить параметры:
m_clientSocket.open(«somehost.com»,21,10);
то пишет
g++ -O3 -Wall -osrc/CommClient.o ../src/CommClient.cpp
../src/CommClient.cpp: In constructor `CommClient::CommClient(const std::string&, int)’:
../src/CommClient.cpp:5: error: call of overloaded `open(const char[13], int, int)' is ambiguous
skstream.h:299: note: candidates are: void tcp_socket_stream::open(const std::string&, int, bool)
skstream.h:300: note: void tcp_socket_stream::open(const std::string&, int, unsigned int)
буквально парой строчек ниже есть вызов метода у которого параметр тоже const
std::string & и никаких проблем
gcc 3.4.2
как такое может быть ???
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Внимательно смотришь на 3-й параметр и представляешь себя компилятором. Как ему догадаться что делать с int?
точно, дело в этом
спасибо
я почемуто считал что компилер int к unsigned int в состоянии привести…
и меня смущала его ругань на первый параметр
Сокеты? Юникс? Стивенс!