This module contains the code of basic auxiliary types that are missing in the current standard library.
The box is memory control primitive. It has functionality similar to unique_ptr, but it doesn't call a delete, instead of this it calls destroy_at at destructor. It is useful with manually memory placed objects. [The source code: box].
namespace ihft::types
{
template<typename Type>
class box final
The type of delegate for calling a function over an interface without ownership. It provides a similar call price, but significantly benefits in the speed of construction, because it doesn't pack an extra data in a local buffer or heap. [The source code: function_ref].
namespace ihft::types
{
template<typename Ret, typename ... Params>
class function_ref<Ret(Params...)> final
The type of function result. It contains result type or error type and provides cozy interface. [The source code: result].
namespace ihft::types
{
template<typename Type, typename Error>
class result final