bug or feature

Yuriy Rubin YRubin@TelicManagement.com
Wed Jan 23 14:50:00 GMT 2002


#ifndef _COMM_H_
#define _COMM_H_

/*
#include <errno.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netdb.h>
#include <string.h>

*/

struct sockaddr_in;

//////////////////////////////////////////////////////////////////////////
//                      class CBaseConn                                 //
//////////////////////////////////////////////////////////////////////////

class CBaseConn
{
 public:
                                CBaseConn();
  virtual                       ~CBaseConn();
  bool                          connect(const char* lpszHost,
                                        int nPort);
  bool                          connect();

 protected:
  bool                          m_bReady;
  sockaddr_in*                  m_pServer;
};

#endif

Implementatio - comm.cpp:

#include "../inc/comm.h"

#include <errno.h>
#include <sys/socket.h>
#include <unistd.h>
#include <netdb.h>
#include <string.h>

//////////////////////////////////////////////////////////////////
//                      class CBaseConn                         //
//////////////////////////////////////////////////////////////////

CBaseConn :: CBaseConn()
{
};

CBaseConn :: ~CBaseConn()
{
  delete m_pServer; m_pServer = NULL;
};

bool CBaseConn :: connect(const char* lpszHost, int nPort)
{
  return connect();
};

bool CBaseConn :: connect()
{
  int nRes = 0;
  if(nRes < 0)
    m_bReady = false;
  else
    m_bReady = true;
  return m_bReady;

compile output:
g++ -Iinc -g -c src/comm.cpp
src/comm.cpp:24: no `bool CBaseConn::__xnet_connect(const char*, int)'
member 
   function declared in class `CBaseConn'
/usr/include/sys/socket.h: In member function `bool 
   CBaseConn::__xnet_connect(const char*, int)':
/usr/include/sys/socket.h:442: too few arguments to function `int 
   __xnet_connect(int, const sockaddr*, unsigned int)'
src/comm.cpp:25: at this point in file
src/comm.cpp: At global scope:
src/comm.cpp:29: prototype for `bool CBaseConn::__xnet_connect()' does not 
   match any in class `CBaseConn'
src/comm.cpp:24: candidate is: bool CBaseConn::__xnet_connect(const char*,
int)

Problem goes away if I uncomment include of systeme files in header file.
Is this a bug or feture of redefining all connect as __xnet_connect in
/sys/socket.h ?
Thank you

Regards
Yuriy Rubin
Telic Management LLC
(203) 861-8492
yrubin@paloma.com



More information about the Gcc-bugs mailing list