Есть такой код:
data.h
======
class Data : public Object {
public:
  typedef boost::intrusive_ptr<Data>;
  class Visitor {
  public:
    virtual ~Visitor() {}
    operator()(Measure::Ptr measure) {}
  };
  virtual void apply_visitor(Visitor &visitor) = 0;
};
measure.h
=========
class Measure : public Data {
public:
  typedef boost::intrusive_ptr<Measure> Ptr;
  void apply_visitor(Visitor &visitor)
  {
    visitor(Ptr(this));
  }
};
Пояснения:
Класс Object реализует подсчет ссылок и предназначен для использования совместно с boost::intrusive_ptr<>.
Разумеется, этот код не компилируется, т.к. в момент обработки data.h  компилятор ничего не знает про Measure::Ptr и, следовательно, не компилируется класс Data::Visitor.
Что делать?
P.S. В operator() класса Visitor можно передавать ссылку на Measure - для этого достаточно в data.h добавить строку class Measure;, но хочется передавать имеено Measure::Ptr.
    
      Ответ на:
      
          комментарий
        от klalafuda 
  
    
      Ответ на:
      
          комментарий
        от syomin 
  
    
      Ответ на:
      
          комментарий
        от syomin 
  
    
      Ответ на:
      
          комментарий
        от syomin 
  
    
      Ответ на:
      
          комментарий
        от int19h 
  
    
      Ответ на:
      
          комментарий
        от syomin 
  
    
      Ответ на:
      
          комментарий
        от KIV 
  
    
      Ответ на:
      
          комментарий
        от syomin 
  
    
      Ответ на:
      
          комментарий
        от MKuznetsov 
  
    
      Ответ на:
      
          комментарий
        от syomin 
  
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум Перекрёстные ссылки в иерархии. Композиция. Нуб. (2016)
 - Форум ошибка: ‘AFSObject’ является недостижимой базой ‘AFSTestQuad’[why?] (2011)
 - Форум Type erasure в C++ (2021)
 - Форум Свой класс Any (2014)
 - Форум Thread safe Queue + delete object's with O(1) (2013)
 
- Форум доступ к шаблонным объектам фабрики??? (2006)
 - Форум C++ , Шаблоны, ошибка линкера LNK2019 (2008)
 - Форум PIMPL без указателя (2016)
 - Форум Не компилируется std::not1(boost::mem_fn(...)) (2005)
 - Форум Упреждающее объявление класса (2007)