LLVM  8.0.1
Classes | Namespaces
FunctionExtras.h File Reference

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/Support/type_traits.h"
#include <memory>
Include dependency graph for FunctionExtras.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::unique_function< FunctionT >
 
class  llvm::unique_function< ReturnT(ParamTs...)>
 
struct  llvm::unique_function< ReturnT(ParamTs...)>::StorageUnionT::OutOfLineStorageT
 

Namespaces

 llvm
 This class represents lattice values for constants.
 

Detailed Description

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.

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.