1//===--- Lambda.h - Types for C++ Lambdas -----------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9///
10/// \file
11/// \brief  Defines several types used to describe C++ lambda expressions
12/// that are shared between the parser and AST.
13///
14//===----------------------------------------------------------------------===//
15
16
17#ifndef LLVM_CLANG_BASIC_LAMBDA_H
18#define LLVM_CLANG_BASIC_LAMBDA_H
19
20namespace clang {
21
22/// \brief The default, if any, capture method for a lambda expression.
23enum LambdaCaptureDefault {
24  LCD_None,
25  LCD_ByCopy,
26  LCD_ByRef
27};
28
29/// \brief The different capture forms in a lambda introducer: 'this' or a
30/// copied or referenced variable.
31enum LambdaCaptureKind {
32  LCK_This,
33  LCK_ByCopy,
34  LCK_ByRef
35};
36
37} // end namespace clang
38
39#endif // LLVM_CLANG_BASIC_LAMBDA_H
40