1 #ifndef CPPAD_CG_ARGUMENT_INCLUDED 2 #define CPPAD_CG_ARGUMENT_INCLUDED 34 std::unique_ptr<Base> parameter_;
42 operation_(&operation) {
45 inline Argument(
const Base& parameter) :
47 parameter_(
new Base(parameter)) {
51 operation_(orig.operation_),
52 parameter_(orig.parameter_ !=
nullptr ?
new Base(*orig.parameter_) :
nullptr) {
56 operation_(orig.operation_),
57 parameter_(std::move(orig.parameter_)) {
64 if (rhs.operation_ !=
nullptr) {
65 operation_ = rhs.operation_;
69 if (parameter_ !=
nullptr) {
70 *parameter_ = *rhs.parameter_;
72 parameter_.reset(
new Base(*rhs.parameter_));
81 operation_ = rhs.operation_;
84 parameter_ = std::move(rhs.parameter_);
95 inline Base* getParameter()
const {
96 return parameter_.get();