CloneTrait

CloneTrait

CloneTrait

CloneTrait

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
#ifndef DataFormats_Common_CloneTrait_h
#define DataFormats_Common_CloneTrait_h
#include "DataFormats/Common/interface/CopyPolicy.h"
#include "DataFormats/Common/interface/OwnVector.h"
#include "DataFormats/Common/interface/View.h"
#include "DataFormats/Common/interface/RefToBaseVector.h"
#include <vector>

namespace edm {
  namespace clonehelper {
    template <typename T>
    struct CloneTrait;

    template <typename T>
    struct CloneTrait<std::vector<T> > {
      typedef CopyPolicy<T> type;
    };

    template <typename T>
    struct CloneTrait<edm::OwnVector<T> > {
      typedef ClonePolicy<T> type;
    };

    template <typename T>
    struct CloneTrait<edm::View<T> > {
      typedef ClonePolicy<T> type;
    };

    template <typename T>
    struct CloneTrait<edm::RefToBaseVector<T> > {
      typedef CopyPolicy<RefToBase<T> > type;
    };

  }  // namespace clonehelper
}  // namespace edm

#endif