aGrUM  0.16.0
PRMAttribute_tpl.h
Go to the documentation of this file.
1 
30 namespace gum {
31  namespace prm {
32 
33  template < typename GUM_SCALAR >
34  PRMAttribute< GUM_SCALAR >::PRMAttribute(const std::string& name) :
35  PRMClassElement< GUM_SCALAR >(name) {
36  GUM_CONSTRUCTOR(PRMAttribute);
37  }
38 
39  template < typename GUM_SCALAR >
41  const PRMAttribute< GUM_SCALAR >& source) :
42  PRMClassElement< GUM_SCALAR >(source) {
43  GUM_CONS_CPY(PRMAttribute);
44  GUM_ERROR(OperationNotAllowed, "Cannot copy Attributes");
45  }
46 
47  template < typename GUM_SCALAR >
49  GUM_DESTRUCTOR(PRMAttribute);
50  }
51 
52  template < typename GUM_SCALAR >
54  auto old_type = this->_type();
55  this->_type(source->_type());
56  source->_type(old_type);
57  }
58 
59  } /* namespace prm */
60 } /* namespace gum */
PRMAttribute(const std::string &name)
Destructor.
Abstract class representing an element of PRM class.
virtual PRMType * _type()=0
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Definition: agrum.h:25
PRMAttribute is a member of a Class in a PRM.
Definition: PRMAttribute.h:61
#define GUM_ERROR(type, msg)
Definition: exceptions.h:55