CとC++の混在時に悩む
Monaでのコーディングは基本 C++ なのだけどシステムコールや uIP など C で書かれたアプリケーションが混じるときに微妙。
enum を使って下の IP::ICMP のように定数を定義していても、Cが混じる場合は使えない。(namespace も同様)
class IP { public: enum { ICMP = 0x01, UDP = 0x11, }; typedef struct{ uint8_t verhead; uint8_t tos; uint16_t len; uint16_t id; uint16_t frag; uint8_t ttl; uint8_t prot; uint16_t chksum; uint32_t srcip; uint32_t dstip; char data[0]; } Header; 略
いっそのこと C++ only にしたいが無理だろうな。