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 // This file defines several types used to describe C++ lambda 11 // expressions that are shared between the parser and AST. 12 //===----------------------------------------------------------------------===// 13 14 15 #ifndef LLVM_CLANG_BASIC_LAMBDA_H 16 #define LLVM_CLANG_BASIC_LAMBDA_H 17 18 namespace clang { 19 20 /// LambdaCaptureDefault - The default, if any, capture method for a 21 /// lambda expression. 22 enum LambdaCaptureDefault { 23 LCD_None, 24 LCD_ByCopy, 25 LCD_ByRef 26 }; 27 28 /// LambdaCaptureKind - The different capture forms in a lambda 29 /// introducer: 'this' or a copied or referenced variable. 30 enum LambdaCaptureKind { 31 LCK_This, 32 LCK_ByCopy, 33 LCK_ByRef 34 }; 35 36 } // end namespace clang 37 38 #endif // LLVM_CLANG_BASIC_LAMBDA_H 39