14 #ifndef LLVM_ADT_SCOPE_EXIT_H 15 #define LLVM_ADT_SCOPE_EXIT_H 19 #include <type_traits> 26 Callable ExitFunction;
30 template <
typename Fp>
34 : ExitFunction(
std::
move(Rhs.ExitFunction)), Engaged(Rhs.Engaged) {
56 template <
typename Callable>
57 LLVM_NODISCARD detail::scope_exit<typename std::decay<Callable>::type>
60 std::forward<Callable>(
F));
scope_exit(scope_exit &&Rhs)
This class represents lattice values for constants.
LLVM_NODISCARD detail::scope_exit< typename std::decay< Callable >::type > make_scope_exit(Callable &&F)
scope_exit & operator=(scope_exit &&)=delete
#define LLVM_NODISCARD
LLVM_NODISCARD - Warn if a type or return value is discarded.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.