31 static_assert(std::is_convertible_v<T*, TreeBuilderBase*>,
32 "Cannot convert T* to TreeBuilderBase*. Did you forget to specify the keyword 'public' when "
33 "inheriting? --> class T : public TreeBuilderBase");
34 return std::make_shared<T>(node_ptr);