LLVM 22.0.0git
|
This file provides a collection of function (or more generally, callable) type erasure utilities supplementing those provided by the standard library in <function>. More...
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/PointerUnion.h"
#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/MemAlloc.h"
#include "llvm/Support/type_traits.h"
#include <cstring>
#include <memory>
#include <type_traits>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::detail |
A self-contained host- and target-independent arbitrary-precision floating-point software implementation. |
Typedefs | |
template<typename CallableT, typename ThisT> | |
using | llvm::detail::EnableUnlessSameType |
template<typename CallableT, typename Ret, typename... Params> | |
using | llvm::detail::EnableIfCallable |
This file provides a collection of function (or more generally, callable) type erasure utilities supplementing those provided by the standard library in <function>.
It provides unique_function, which works like std::function but supports move-only callable objects and const-qualification.
Future plans:
Note that LLVM's utilities are greatly simplified by not supporting allocators.
If the standard library ever begins to provide comparable facilities we can consider switching to those.
Definition in file FunctionExtras.h.