operators

main
Brett 2024-02-21 16:32:44 -05:00
parent 6c14bbc941
commit c330b268a5
2 changed files with 18 additions and 10 deletions

@ -1 +1 @@
Subproject commit 0b6b6aed9b1fa2428bd665a72149f21f9e0e5d0d
Subproject commit 392c32751da3f23644990581fda9fe59ec603de2

View File

@ -135,21 +135,29 @@ namespace fb
};
class flat_tree
{
};
struct node_container
template<typename ARG_TYPE>
struct operator_t
{
[[nodiscard]] constexpr arg_count_t argCount() const
{ return 0; }
private:
arg_count_t argc;
std::function<ARG_TYPE(blt::span<ARG_TYPE>)> func;
blt::vector<operator_t<ARG_TYPE>> allowed_inputs;
public:
operator_t(arg_count_t argc, std::function<ARG_TYPE(blt::span<ARG_TYPE>)> func): argc(argc), func(std::move(func))
{}
[[nodiscard]] constexpr arg_count_t argCount() const
{ return argc; }
[[nodiscard]] constexpr std::function<ARG_TYPE(blt::span<ARG_TYPE>)> function() const
{ return func; }
[[nodiscard]] static inline constexpr arg_count_t determine_max_argc()
{
return 2;
}
};
template<typename NODE_CONTAINER, typename ALLOC>