Skip to content
Snippets Groups Projects
Commit da393b38 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Fix Embedded data tuples as return type

parent 9c3cc5b9
Branches
Tags
1 merge request!167Improve fluxing based remapping
......@@ -114,10 +114,21 @@ class BuiltinFunctionEmbedderBase<FX(Args...)> : public IBuiltinFunctionEmbedder
}
template <typename T>
PUGS_INLINE std::shared_ptr<IDataHandler>
PUGS_INLINE EmbeddedData
_createHandler(std::shared_ptr<T> data) const
{
return std::make_shared<DataHandler<T>>(data);
return EmbeddedData{std::make_shared<DataHandler<T>>(data)};
}
template <typename T>
PUGS_INLINE std::vector<EmbeddedData>
_createHandler(std::vector<std::shared_ptr<T>> data) const
{
std::vector<EmbeddedData> embedded(data.size());
for (size_t i_data = 0; i_data < data.size(); ++i_data) {
embedded[i_data] = EmbeddedData(std::make_shared<DataHandler<T>>(data[i_data]));
}
return embedded;
}
template <typename ResultT>
......@@ -127,7 +138,7 @@ class BuiltinFunctionEmbedderBase<FX(Args...)> : public IBuiltinFunctionEmbedder
if constexpr (is_data_variant_v<std::decay_t<ResultT>>) {
return std::move(result);
} else {
return EmbeddedData(_createHandler(std::move(result)));
return _createHandler(std::move(result));
}
}
......@@ -327,7 +338,7 @@ class BuiltinFunctionEmbedder<FX(Args...)> : public BuiltinFunctionEmbedderBase<
std::apply(m_f, t);
return {};
} else {
return EmbeddedData(this->template _createHandler(std::apply(m_f, t)));
return this->template _createHandler(std::apply(m_f, t));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment