Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#include "DataFormats/Common/interface/View.h"
#include <typeinfo>

namespace edm {
  //------------------------------------------------------------------
  // Implementation of ViewBase.
  //------------------------------------------------------------------

  ViewBase::~ViewBase() {}

  std::unique_ptr<ViewBase> ViewBase::clone() const {
    auto p = doClone();
#if !defined(NDEBUG)
    //move side-effect out of typeid to avoid compiler warning
    auto p_get = p.get();
    assert(typeid(*p_get) == typeid(*this) && "doClone() incorrectly overriden");
#endif
    return p;
  }

}  // namespace edm