boost :: resulf_of или BOOST_TYPEOF в типе возвращаемого значения - PullRequest
1 голос
/ 19 августа 2011

все!Я застрял с boost :: result_of и BOOST_TYPEOF.Я хочу использовать их для определения типа возвращаемого значения метода.

Как я могу реализовать что-то вроде этого (это не компилируется):

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

Позже я сделаю макрос, который создаетполучатели автоматически.

1 Ответ

2 голосов
/ 20 августа 2011

Тот факт, что вы получаете сообщение об ошибке от вашего компилятора (когда он работает в соответствии с 4.6.1), указывает на потенциальную ошибку компилятора, которая будет исправлена ​​в более поздних версиях. Тем не менее, необычно использовать BOOST_TYPEOF на ваших собственных элементах данных - в конце концов, вы должны знать, какого они типа, верно? Если вы хотите объединить некоторую сложную логику для определения правильного типа, просто используйте typedef:

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