在《C++网络编程卷一》中的第四章,有一个关于网路日志服务程序实现的例子。但是类似于
ACE_InputCDR cdr;
cdr>>ACE_InputCDR::to_boolean (byte_order);
或者
ACE_OutputCDR cdr
cdr<<ACE_CDR::Long (log_record.type ());
之类的<<与>>操作符重载,ACE似乎都没有实现?(我Link的时候找不到>>的实现)
我查找了ACE_InputCDR的定义,在CDR_Stream.h中确实申明了>>,但是却没有实现,难道是ACE的Bug???我确实可以自己来实现>>和<<操作,ACE_CDR::Long等基本类型都好办,可是
ACE_CDR::Boolean operator>> (ACE_InputCDR &is,
                             ACE_InputCDR::to_boolean x);
这个操作实现?我ACE5.3和ACE5.4都试验过了。望熟悉ACE的朋友不吝赐教。

解决方案 »

  1.   

    不是没有实现!应该在类联文件里面!你要看看*.i 和*.inl文件!你仔细看看!应该有的.
      

  2.   

    非常感谢楼上的兄弟我已经在ace/CDR_Stream.i找到了ACE_InputCDR的定义>>。
    现在问题是我如何使用这个操作呢,在.i文件中定义的都是一些内联函数,我该如何编译这种.i文件?(把这个文件include进来好像不对啊)
      

  3.   

    你在VC下全编译了ACE5.4了吗?
      

  4.   

    全编译?
    我的编译过程:在ace目录下增加config.h文件->打开.dsw文件->编译ace项目的release版。
    这样的编译过程有问题吗?
      

  5.   

    你要自己建立一个config!你看看ace的随机帮助文档!说得很清楚.