一切! 我坚持使用boost :: result_of和BOOST_TYPEOF。 我想用它们来推导出返回值类型的方法。
我如何实现这样的东西(这不能编译):
class A {
private:
int x_;
public:
BOOST_TYPEOF(x_) x() { return x_; }
};
稍后我将创建自动创建getter的宏。
答案 0 :(得分:2)
您从编译器收到错误(在4.6.1下工作时)的事实表明在以后的版本中修复了潜在的编译器错误。也就是说,在你自己的数据成员上使用BOOST_TYPEOF
是不寻常的 - 毕竟,你应该知道它们是什么类型,对吧?如果您想要合并一些复杂的逻辑来确定正确的类型,只需使用typedef
:
private:
typedef int data_type;
data_type x_;
public:
data_type x() { return x_; }