20#include "cc_tools_qt/details/ToolsFieldBase.h"
21#include "cc_tools_qt/field/ToolsUnknownField.h"
29template <
typename TField>
30class ToolsUnknownFieldImpl :
public ToolsFieldBase<cc_tools_qt::field::ToolsUnknownField, TField>
32 using Base = ToolsFieldBase<cc_tools_qt::field::ToolsUnknownField, TField>;
36 using Ptr =
typename Base::Ptr;
37 using ActPtr =
typename Base::ActPtr;
39 explicit ToolsUnknownFieldImpl(Field& fieldRef)
44 ToolsUnknownFieldImpl(
const ToolsUnknownFieldImpl&) =
default;
45 ToolsUnknownFieldImpl(ToolsUnknownFieldImpl&&) =
default;
46 virtual ~ToolsUnknownFieldImpl() noexcept = default;
48 ToolsUnknownFieldImpl& operator=(const ToolsUnknownFieldImpl&) = delete;
51 virtual Ptr cloneImpl()
override
53 return ActPtr(
new ToolsUnknownFieldImpl<TField>(Base::field()));
57template <
typename TField>
58auto makeUnknownField(TField& field)
60 return std::make_unique<ToolsUnknownFieldImpl<TField>>(field);