diff --git a/include/ircd/util/closure.h b/include/ircd/util/closure.h new file mode 100644 index 000000000..474d6d812 --- /dev/null +++ b/include/ircd/util/closure.h @@ -0,0 +1,27 @@ +// Matrix Construct +// +// Copyright (C) Matrix Construct Developers, Authors & Contributors +// Copyright (C) 2016-2019 Jason Volk +// +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice is present in all copies. The +// full license for this software is available in the LICENSE file. + +#pragma once +#define HAVE_IRCD_UTIL_CLOSURE_H + +namespace ircd::util +{ + template struct closure; +} + +///TODO: This is a WIP that is meant to replace the pattern of having two +///TODO: for_each() overloads in every interface where one takes a closure +///TODO: which returns a bool, and the other takes a void closure. In practice +///TODO: the void overload simply calls the bool overload and returns true. +template +struct ircd::util::closure +{ + +}; diff --git a/include/ircd/util/util.h b/include/ircd/util/util.h index 10b9b4c15..c85c64492 100644 --- a/include/ircd/util/util.h +++ b/include/ircd/util/util.h @@ -59,6 +59,7 @@ namespace ircd #include "pretty.h" #include "hash.h" #include "fpe.h" +#include "closure.h" // Unsorted section namespace ircd {