Main.cc: In function ‘void slv()’: Main.cc:44:22: error: use of ‘auto’ in lambda parameter declaration only available with -std=c++14 or -std=gnu++14 auto dfs=[&](auto &&self,int x,int y)->void{ ^~~~ Main.cc: In lambda function: Main.cc:46:60: error: expression cannot be used as a function if(s2[i][x+y-1]!='0'||dp(x,y-1))self(self,x,y-1); ^ Main.cc:47:45: error: expression cannot be used as a function else t[i][x]=x+y,self(self,x-1,y); ^ Main.cc: In function ‘void slv()’: Main.cc:49:20: error: no match for call to ‘(slv()::) (slv()::&, int&, int&)’ dfs(dfs,n,n); ^ Main.cc:44:48: note: candidate: slv():: auto dfs=[&](auto &&self,int x,int y)->void{ ^~~~ Main.cc:44:48: note: no known conversion for argument 1 from ‘slv()::’ to ‘int&&’