有关 error_code 的错误


#1

if( ec == webqq::error::errc_t::login_failed_wrong_vc) 出错

抄 avhttp 的 error_code建立的, 在 libwebqq 内部 if( ec == webqq::error::errc_t::login_failed_wrong_vc) 类似这样的代码是完全没有问题的, 可以编译过.

可是到了 libavbot 那里, 这样使用就出现编译错误了, 是在 boost::system::error_code 里面, 出现 make_error_code 未找到的错误


#2

/usr/include/boost/system/error_code.hpp:330:34: error: could not convert ‘e’ from ‘webqq::error::errc_t::errc_t’ to ‘boost::future_errc’

      template <class ErrorCodeEnum>
        error_code(ErrorCodeEnum e,
          typename boost::enable_if<is_error_code_enum<ErrorCodeEnum> >::type* = 0) BOOST_SYSTEM_NOEXCEPT
      {
        *this = make_error_code(e);
      }

这里错误, 奇怪了


#3

找到原因了, 节帖!!

‘webqq::error::errc_t::errc_t 放到 ‘webqq::error 名称空间里, 要和 webqq::error::make_error_code 放到一个空间!


#4

Yeah,你自己的 make_error_code 和 boost.system的make_error_code 需要区别开。 也就是说,你的make_error_code只为你自己定义的error_code服务,所以需要和你的error_code放同一命名空间里。