21#include "cc_tools_qt/details/ToolsFieldBase.h"
22#include "cc_tools_qt/field/ToolsUnknownField.h"
30template <
typename TField>
31class ToolsUnknownFieldImpl :
public ToolsFieldBase<cc_tools_qt::field::ToolsUnknownField, TField>
33 using Base = ToolsFieldBase<cc_tools_qt::field::ToolsUnknownField, TField>;
37 using Ptr =
typename Base::Ptr;
38 using ActPtr =
typename Base::ActPtr;
40 explicit ToolsUnknownFieldImpl(Field& fieldRef)
45 ToolsUnknownFieldImpl(
const ToolsUnknownFieldImpl&) =
default;
46 ToolsUnknownFieldImpl(ToolsUnknownFieldImpl&&) =
default;
47 virtual ~ToolsUnknownFieldImpl() noexcept = default;
49 ToolsUnknownFieldImpl& operator=(const ToolsUnknownFieldImpl&) = delete;
52 virtual Ptr cloneImpl()
override
54 return ActPtr(
new ToolsUnknownFieldImpl<TField>(Base::field()));
58template <
typename TField>
59auto makeUnknownField(TField& field)
61 return std::make_unique<ToolsUnknownFieldImpl<TField>>(field);