Add in support for initialising auto variables from lambda expressions

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-matevz@13858 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2012-10-02 21:12:36 +00:00
commit 7ca8f025ad
2 changed files with 41 additions and 14 deletions

View file

@ -36,6 +36,10 @@ auto lambda8 = [] (int x, int y) throw() -> int { return x+y; };
auto lambda9 = [] (int x, int y) mutable throw() -> int { return x+y; };
auto lambda10 = [] (int x, int y) throw(int) { return x+y; };
auto lambda11 = [] (int x, int y) mutable throw(int) { return x+y; };
auto lambda12 = [] (int a, int b) { return a + b; }(1, 2);
auto lambda13 = [] (int a, int b) mutable { return a + b; }(1, 2);
auto lambda14 = [] () throw () {};
auto lambda15 = [] () mutable throw () {};
int runLambda1() {
return lambda1(5,6);
@ -70,11 +74,9 @@ int runLambdaInline() {
struct LambdaStruct {
static constexpr auto lambda_struct1 = [=]() { return thing;};
};
int(*lambda101notauto)(int, int) = [] (int a, int b) { return a + b; };
auto lambda100 = [] { return thing;};
int lambda101 = [] (int a, int b) { return a + b; }(1, 2);
int lambda102 = [] (int a, int b) mutable { return a + b; }(1, 2);
auto lambda103 = [] () throw () { /* does not throw */ };
auto lambda104 = [] () mutable throw () { /* does not throw */ };
void lambda_init(int = ([=]{ return 0; })());
%}