IP with C++ problem

Rosimildo da Silva rdasilva at connecttel.com
Fri Sep 14 12:50:57 UTC 2001

From: "Andrew N. Maximov" <amaximus at mail.ru>
To: "rtems-users" <rtems-users at OARcorp.com>
Sent: Friday, September 14, 2001 3:31 AM
Subject: IP with C++ problem

> Hello rtems-users,
> There is a problem while using network in C++.
> When I attempt to compile this example
> /*****************************************/
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <sys/sockio.h>
> #include <net/if.h>
> #include <netinet/in.h>
> /*****************************************/
> gcc produces an error:
> netinet/in.h:282: ANSI C++ forbids data member `ip_opts' with same name as
enclosing class
> The problem is in the netinet/in.h file.
> The structure ip_opts is declared as
> struct ip_opts {
>         struct  in_addr ip_dst;         /* first hop, 0 w/o src rt */
>         char    ip_opts[40];            /* actually variable in size */
> };
> The name and the member of structure
> have an identical name "ip_opts".
> Whether this problem will be being solved?

In C++ these "hacks" are illegal.

Many of the *BSD header files are broken regarding C++,
and you need to add round them:

extern "C"

#include <sys/types.h>
#include <sys/socket.h>
#include <sys/sockio.h>
#include <net/if.h>
#include <netinet/in.h>


or fix the offending file, and send a patch to Joel. :-)

Take Care, Rosimildo.

More information about the users mailing list