返回值类型中的boost :: resulf_of或BOOST_TYPEOF

时间:2011-08-19 18:19:25

标签: c++ boost typeof

一切! 我坚持使用boost :: result_of和BOOST_TYPEOF。 我想用它们来推导出返回值类型的方法。

我如何实现这样的东西(这不能编译):

class A {
  private: 
   int x_; 
  public:
   BOOST_TYPEOF(x_) x() { return x_; }
};

稍后我将创建自动创建getter的宏。

1 个答案:

答案 0 :(得分:2)

您从编译器收到错误(在4.6.1下工作时)的事实表明在以后的版本中修复了潜在的编译器错误。也就是说,在你自己的数据成员上使用BOOST_TYPEOF是不寻常的 - 毕竟,你应该知道它们是什么类型,对吧?如果您想要合并一些复杂的逻辑来确定正确的类型,只需使用typedef

private:
  typedef int data_type;
  data_type x_;
public:
  data_type x() { return x_; }