22#include "cc_tools_qt/details/ToolsFieldBase.h"
23#include "cc_tools_qt/field/ToolsUnknownField.h"
31template <
typename TField>
32class ToolsUnknownFieldImpl :
public ToolsFieldBase<cc_tools_qt::field::ToolsUnknownField, TField>
34 using Base = ToolsFieldBase<cc_tools_qt::field::ToolsUnknownField, TField>;
38 using Ptr =
typename Base::Ptr;
39 using ActPtr =
typename Base::ActPtr;
41 explicit ToolsUnknownFieldImpl(Field& fieldRef)
46 ToolsUnknownFieldImpl(
const ToolsUnknownFieldImpl&) =
default;
47 ToolsUnknownFieldImpl(ToolsUnknownFieldImpl&&) =
default;
48 virtual ~ToolsUnknownFieldImpl() noexcept = default;
50 ToolsUnknownFieldImpl& operator=(const ToolsUnknownFieldImpl&) = delete;
53 virtual Ptr cloneImpl()
override
55 return ActPtr(
new ToolsUnknownFieldImpl<TField>(Base::field()));
59template <
typename TField>
60auto makeUnknownField(TField& field)
62 return std::make_unique<ToolsUnknownFieldImpl<TField>>(field);