From f0a87dfdaa8265292cf4cf282bdf8d47d35c1511 Mon Sep 17 00:00:00 2001 From: Olivier BICHLER <olivier.bichler@cea.fr> Date: Tue, 4 Jun 2024 19:18:01 +0200 Subject: [PATCH] Removed universal reference overload which are useless and cause issue when stealing the pointer for Python --- include/aidge/operator/MetaOperator.hpp | 2 +- include/aidge/operator/Operator.hpp | 4 ++-- include/aidge/operator/OperatorTensor.hpp | 4 ++-- include/aidge/operator/Producer.hpp | 3 ++- src/operator/MetaOperator.cpp | 4 ++-- src/operator/OperatorTensor.cpp | 8 ++++---- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/include/aidge/operator/MetaOperator.hpp b/include/aidge/operator/MetaOperator.hpp index 75c4d886f..9b2d4d2ad 100644 --- a/include/aidge/operator/MetaOperator.hpp +++ b/include/aidge/operator/MetaOperator.hpp @@ -72,7 +72,7 @@ public: void associateInput(const IOIndex_t inputIdx, const std::shared_ptr<Data>& data) override final; void setInput(const IOIndex_t inputIdx, const std::shared_ptr<Data>& data) override final; - void setInput(const IOIndex_t inputIdx, std::shared_ptr<Data>&& data) override final; + //void setInput(const IOIndex_t inputIdx, std::shared_ptr<Data>&& data) override final; bool forwardDims(bool allowDataDependency = false) override final { // Check first that all required inputs are available, otherwise diff --git a/include/aidge/operator/Operator.hpp b/include/aidge/operator/Operator.hpp index 3ee234229..e3bdc1188 100644 --- a/include/aidge/operator/Operator.hpp +++ b/include/aidge/operator/Operator.hpp @@ -87,7 +87,7 @@ public: * @param data Data to copy. */ virtual void setInput(const IOIndex_t inputIdx, const std::shared_ptr<Data>& data) = 0; - virtual void setInput(const IOIndex_t inputIdx, std::shared_ptr<Data>&& data) = 0; + //virtual void setInput(const IOIndex_t inputIdx, std::shared_ptr<Data>&& data) = 0; virtual std::shared_ptr<Data> getRawInput(const IOIndex_t inputIdx) const = 0; /** * @brief Set the specified output value by performing a deep copy of the given data. @@ -95,7 +95,7 @@ public: * @param inputIdx Index of the input to set. */ virtual void setOutput(const IOIndex_t outputIdx, const std::shared_ptr<Data>& data) = 0; - virtual void setOutput(const IOIndex_t outputIdx, std::shared_ptr<Data>&& data) = 0; + //virtual void setOutput(const IOIndex_t outputIdx, std::shared_ptr<Data>&& data) = 0; virtual std::shared_ptr<Data> getRawOutput(const IOIndex_t outputIdx) const = 0; std::shared_ptr<Hook> getHook(const std::string& hookName) { diff --git a/include/aidge/operator/OperatorTensor.hpp b/include/aidge/operator/OperatorTensor.hpp index a49379327..1b02147eb 100644 --- a/include/aidge/operator/OperatorTensor.hpp +++ b/include/aidge/operator/OperatorTensor.hpp @@ -57,13 +57,13 @@ public: // Tensor access // input management void setInput(const IOIndex_t inputIdx, const std::shared_ptr<Data>& data) override; - void setInput(const IOIndex_t inputIdx, std::shared_ptr<Data>&& data) override; + //void setInput(const IOIndex_t inputIdx, std::shared_ptr<Data>&& data) override; const std::shared_ptr<Tensor>& getInput(const IOIndex_t inputIdx) const; std::shared_ptr<Data> getRawInput(const IOIndex_t inputIdx) const override final; // output management void setOutput(const IOIndex_t outputIdx, const std::shared_ptr<Data>& data) override; - void setOutput(const IOIndex_t outputIdx, std::shared_ptr<Data>&& data) override; + //void setOutput(const IOIndex_t outputIdx, std::shared_ptr<Data>&& data) override; virtual const std::shared_ptr<Tensor>& getOutput(const IOIndex_t outputIdx) const; std::shared_ptr<Aidge::Data> getRawOutput(const Aidge::IOIndex_t outputIdx) const override final; /////////////////////////////////////////////////// diff --git a/include/aidge/operator/Producer.hpp b/include/aidge/operator/Producer.hpp index 238250796..e914a7aff 100644 --- a/include/aidge/operator/Producer.hpp +++ b/include/aidge/operator/Producer.hpp @@ -107,12 +107,13 @@ public: void backward() override final { // fmt::print("Basic Producer backward() function.\n"); } + /* void setOutput(const Aidge::IOIndex_t outputIdx, std::shared_ptr<Aidge::Data>&& data) override { if (getAttr<ProdAttr::Constant>()) { AIDGE_THROW_OR_ABORT(std::runtime_error, "Producer is constant, cannot update output."); } OperatorTensor::setOutput(outputIdx, std::move(data)); - } + }*/ void setOutput(const Aidge::IOIndex_t outputIdx, const std::shared_ptr<Aidge::Data>& data) override { if (getAttr<ProdAttr::Constant>()) { diff --git a/src/operator/MetaOperator.cpp b/src/operator/MetaOperator.cpp index 36ff18547..2c2df0a75 100644 --- a/src/operator/MetaOperator.cpp +++ b/src/operator/MetaOperator.cpp @@ -57,7 +57,7 @@ void Aidge::MetaOperator_Op::setInput(const Aidge::IOIndex_t inputIdx, const std // Associate inputs for custom implementation mInputs[inputIdx] = std::dynamic_pointer_cast<Tensor>(inputOp.first->getOperator()->getRawInput(inputOp.second)); } - +/* void Aidge::MetaOperator_Op::setInput(const Aidge::IOIndex_t inputIdx, std::shared_ptr<Data>&& data) { AIDGE_ASSERT(data->type() == Tensor::Type, "{} Operator only accepts Tensors as inputs", type()); @@ -67,7 +67,7 @@ void Aidge::MetaOperator_Op::setInput(const Aidge::IOIndex_t inputIdx, std::shar // Associate inputs for custom implementation mInputs[inputIdx] = std::dynamic_pointer_cast<Tensor>(inputOp.first->getOperator()->getRawInput(inputOp.second)); } - +*/ Aidge::Elts_t Aidge::MetaOperator_Op::getNbRequiredData(const IOIndex_t inputIdx) const { if (mImpl) { return mImpl->getNbRequiredData(inputIdx); diff --git a/src/operator/OperatorTensor.cpp b/src/operator/OperatorTensor.cpp index 25c9deb2a..6e9767150 100644 --- a/src/operator/OperatorTensor.cpp +++ b/src/operator/OperatorTensor.cpp @@ -61,7 +61,7 @@ void Aidge::OperatorTensor::setInput(const Aidge::IOIndex_t inputIdx, const std: } Aidge::OperatorTensor::~OperatorTensor() = default; - +/* void Aidge::OperatorTensor::setInput(const Aidge::IOIndex_t inputIdx, std::shared_ptr<Aidge::Data>&& data) { AIDGE_ASSERT(data->type() == Tensor::Type, "{} Operator only accepts Tensors as inputs", type()); if (getInput(inputIdx)) { @@ -70,7 +70,7 @@ void Aidge::OperatorTensor::setInput(const Aidge::IOIndex_t inputIdx, std::share mInputs[inputIdx] = std::make_shared<Tensor>(std::move(*std::dynamic_pointer_cast<Tensor>(data))); } } - +*/ std::shared_ptr<Aidge::Data> Aidge::OperatorTensor::getRawInput(const Aidge::IOIndex_t inputIdx) const { return std::static_pointer_cast<Data>(getInput(inputIdx)); } @@ -87,7 +87,7 @@ void Aidge::OperatorTensor::setOutput(const Aidge::IOIndex_t outputIdx, const st // AIDGE_ASSERT(data_tensor->getImpl()->backend() == backend(), "Data parameter and Operator have different backends: {} and {}", data_tensor->getImpl()->backend(), backend()); *mOutputs[outputIdx] = *data_tensor; } - +/* void Aidge::OperatorTensor::setOutput(const Aidge::IOIndex_t outputIdx, std::shared_ptr<Aidge::Data>&& data) { AIDGE_ASSERT(data->type() == Tensor::Type, "{} Operator only accepts Tensors as inputs", type()); AIDGE_ASSERT(outputIdx < nbOutputs(), "{} Operator has {} outputs", type(), nbOutputs()); @@ -95,7 +95,7 @@ void Aidge::OperatorTensor::setOutput(const Aidge::IOIndex_t outputIdx, std::sha // if (mImpl) // AIDGE_ASSERT(data_tensor->getImpl()->backend() == backend(), "Data parameter and Operator have different backends: {} and {}", data_tensor->getImpl()->backend(), backend()); *mOutputs[outputIdx] = std::move(*data_tensor); -} +}*/ std::shared_ptr<Aidge::Data> Aidge::OperatorTensor::getRawOutput(const Aidge::IOIndex_t outputIdx) const { return std::static_pointer_cast<Data>(getOutput(outputIdx)); -- GitLab