void autoRedMiddleZone(void) { autoResetStart(false); // Left Right Strafe Lift Intake Type Target auto(FWD, FWD, OFF, L_GRND, IN, TIME, 3000); //Intake + Drive auto(FWD, FWD, OFF, OFF, OFF, DRIV_READY, 1400); //Drive auto(FWD, REV, OFF, L_STSH, OUT, DRIV_READY, 900); //Lift, Turn, + Outtake autoResetEnd(); }
void f() { if (auto a = true) { } switch (auto a = 0) { } while (auto a = false) { } for (; auto a = false; ) { } new const auto (0); new (auto) (0.0); #if 0 // When clang supports for-range: for (auto i : {1,2,3}) { } // When clang supports inline initialization of members. class X { static const auto &n = 'x'; }; #endif }
void h() { auto p = f<int>; auto (*q)() = f<int>; int (*r)() = f; // expected-error {{does not match}} g(f<int>); g<int>(f); // expected-error {{no matching function}} g(f); // expected-error {{no matching function}} }
void scriptHang() { autoResetStart(0, SCRIPT, true, true, false); //L, R, S, Lift, Intk,Cata,Tranny,End Type, Other //auto(straight(HALF),0, lPreAdd(STS,150),0,0,0, TIME_LIMIT, 100); //Drive into bar //auto(straight(REV), 0, lPre(GND), 0, 0, 1, TIME_LIMIT, 5000); //Hang //auto(straight(REV), 0, 0, 0, 0, 1, TIME_LIMIT, 5000); //Hang auto(enc1(-2400), 0, lPre(BAR), 0, 0, 1, TIME_LIMIT, 5000); //Hang autoResetEnd(); }
int main() { { auto L = []<int N>(auto (&ta)[N]) { return ta[0]; }; int arr[]{1, 2, 3}; //CHECK: L(arr) = 1 printf("L(arr) = %d\n", L(arr)); } }
void foo () { __extension__ (auto) { 0 }; // { dg-error "auto" } C<int> c; dynamic_cast<auto> (c); // { dg-error "auto" } reinterpret_cast<auto> (c); // { dg-error "auto" } int i = auto (0); // { dg-error "auto" } auto p1 = new (auto); // { dg-error "auto" } auto p2 = new (auto) (42); // { dg-error "invalid use of|deduce" } offsetof (auto, fld); // { dg-error "auto" } offsetof (auto *, fld); // { dg-error "auto" } sizeof (auto); // { dg-error "auto" } sizeof (auto *); // { dg-error "auto" } }
int main() { auto i = 42; if (typeid (i) != typeid (int)) abort(); auto *p = &i; if (typeid (p) != typeid (int*)) abort(); auto *p2 = &p; if (typeid (p2) != typeid (int**)) abort(); auto (*fp)() = f; if (typeid (fp) != typeid (int (*)())) abort(); auto A::* pm = &A::i; if (typeid (pm) != typeid (int A::*)) abort(); auto (A::*pmf)() = &A::f; if (typeid (pmf) != typeid (int (A::*)())) abort(); g(42); g(10.f); g(A()); auto *p3 = new auto (i); if (typeid (p3) != typeid (int*)) abort(); for (auto idx = i; idx != 0; idx = 0); while (auto idx = 0); if (auto idx = 1); switch (auto s = i) { case 42: break; } auto j = 42, k = 24; }
void f() { if (auto a = true) { } switch (auto a = 0) { } while (auto a = false) { } for (; auto a = false; ) { } new const auto (0); new (auto) (0.0); int arr[] = {1, 2, 3}; for (auto i : arr) { } }
task autonomous() { bool runningAuto = true; while (runningAuto) { //Weird as it looks; this loop must exist for the autonomous to work. startAuto(); //___Drive_L&R________Strafe___Lift_L&R______Intake___End_Type_____Time_____Notes auto(straight(FWD), 0, stopped(), FWD, TIME_LIMIT, 1000); //Forward auto(straight(REV), 0, stopped(), 0, TIME_LIMIT, 1000); //Reversed auto(stopped(), LEFT, straight(60), 0, TIME_LIMIT, 1000); //Turn left with left wheels auto(turn(-64), 0, stopped(), 0, TIME_LIMIT, 1000); //Zero-turn half speed auto(straight(BRAKE), 0, stopped(), 0, TIME_LIMIT, 200); //Brake auto(straight(-BRAKE),0, stopped(), 0, TIME_LIMIT, 200); //Brake runningAuto = endAuto(); constantLoopTime(); //Important for slew } }
task main() { initialize(N_EAST); //Which way does the robot start pointing? autoReset(0); // 0 = Start, 1 = Finish // TYPE, Left, Right, Other, End Type, Delay auto(CMP_2, RHT_45, FULL, LOW_SH, DRIV_READY, PID); //Turn toward S dispenser auto(STR, EAST, 11300, LOW_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, LFT_90, FULL, LOW_SH, DRIV_READY, PID); //Turn to hooks auto(STR, NORTH, 9150, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, NORTH, -7200, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7200, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, NORTH, -7200, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7150, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, NORTH, -1000, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 1350, FULL, LOW_LV, DRIV_READY, PID); //Turn to get around pole auto(STR, S_EAST, -5000, LOW_LV, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, LOW_LV, DRIV_READY, PID); //Turn to get around pole auto(STR, S_WEST, -2300, LOW_LV, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, LOW_LV, DRIV_READY, PID); //Align with S wall auto(STR, SOUTH, -7300, LOW_LV, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7400, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, SOUTH, -7500, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7100, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, SOUTH, -7300, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7200, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, SOUTH, -7900, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, 3600, 9500, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(CMP_2, -1350, FULL, LOW_OP, DRIV_READY, PID); //Turn away from corner hook auto(STR, SOUTH, 9800, DRP_OP, DRIV_READY, NEXT); //Forward auto(CMP_2, -250, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, 2450, 9000, DRP_SH, DRIV_READY, NEXT); //Forward - ^ auto(STR, 2450, -9000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 250, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, SOUTH, 4000, DRP_SH, DRIV_READY, NEXT); //Forward - > auto(STR, SOUTH, -5000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, S_EAST, 8500, DRP_SH, DRIV_READY, NEXT); //Forward - < auto(STR, S_EAST, -8500, DRP_OP, DRIV_READY, NEXT); //Backward auto(STR, S_EAST, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - v auto(STR, S_EAST, -3000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_OP, DRIV_READY, PID); //Turn toward E dispenser auto(STR, EAST, 10000, DRP_SH, DRIV_READY, NEXT); //Forward across field auto(STR, EAST, 10000, DRP_SH, DRIV_READY, NEXT); //Forward across field auto(CMP_2, -1150, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, 650, 7000, DRP_SH, DRIV_READY, NEXT); //Forward - ^ auto(STR, 650, -7000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 250, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, NORTH, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - > auto(STR, NORTH, -5000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_SH, DRIV_READY, PID); //Turn auto(STR, N_WEST, 7000, DRP_SH, DRIV_READY, NEXT); //Forward - < auto(STR, N_WEST, -7000, DRP_OP, DRIV_READY, NEXT); //Backward auto(STR, N_WEST, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - v auto(STR, N_WEST, -3000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn auto(STR, N_EAST, -12800, CRN_SH, DRIV_READY, NEXT); //Backward to last dispenser auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, EAST, 9200, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(STR, S_EAST, -850, CRN_OP, DRIV_READY, 300); //Let go autoReset(1); while(1==1) {zeroMotors(); output();} }
int f(); // expected-error {{differ only in their return type}} auto &g(); auto g() -> auto &; auto h() -> auto *; auto *h(); struct Conv1 { operator auto(); // expected-note {{declared here}} } conv1; int conv1a = conv1; // expected-error {{function 'operator auto' with deduced return type cannot be used before it is defined}} // expected-error@-1 {{no viable conversion}} Conv1::operator auto() { return 123; } int conv1b = conv1; int conv1c = conv1.operator auto(); int conv1d = conv1.operator int(); // expected-error {{no member named 'operator int'}} struct Conv2 { operator auto() { return 0; } // expected-note {{previous}} operator auto() { return 0.; } // expected-error {{cannot be redeclared}} expected-error {{cannot initialize return object of type 'auto' with an rvalue of type 'double'}} }; struct Conv3 { operator auto() { int *p = nullptr; return p; } // expected-note {{candidate}} operator auto*() { int *p = nullptr; return p; } // expected-note {{candidate}} } conv3; int *conv3a = conv3; // expected-error {{ambiguous}} int *conv3b = conv3.operator auto(); int *conv3c = conv3.operator auto*();
template<int> void foo() { int a[auto(1)]; // { dg-error "invalid use of" } }
int main() { A().operator auto(); }
task main() { initialize(N_EAST); //Which way does the robot start pointing? autoReset(START); // TYPE, Left, Right, Other, End Type, Delay auto(CMP_2, RHT_45, FULL, LOW_SH, DRIV_READY, PID); //Turn toward S dispenser auto(STR, EAST, 11300, LOW_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, LFT_90, FULL, LOW_SH, DRIV_READY, PID); //Turn to SE hooks auto(STR, NORTH, 9150, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, NORTH, -7200, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7200, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, NORTH, -7200, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, NORTH, 7150, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, NORTH, -7200, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, EAST, 8100, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(STR, S_EAST, 1600, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, -1350, FULL, CRN_OP, DRIV_READY, PID); //Turn toward E dispenser auto(STR, NORTH, 10400, DRP_SH, DRIV_READY, NEXT); //Forward - E dispenser to 4 tiles auto(CMP_2, -250, FULL, DRP_OP, DRIV_READY, PID); //Turn auto(STR, 650, 8000, DRP_SH, DRIV_READY, NEXT); //Forward - N Tile auto(STR, 650, -4000, DRP_SH, DRIV_READY, NEXT); //Backward auto(STR, 650, -4000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, -200, FULL, DRP_OP, DRIV_READY, PID); //Turn auto(STR, N_WEST, 8300, DRP_SH, DRIV_READY, NEXT); //Forward - W Tile auto(STR, N_WEST, -3300, DRP_SH, DRIV_READY, NEXT); //Backward auto(CMP_2, 1350, FULL, DRP_SH, DRIV_READY, PID); //Turn - Straight back auto(STR, EAST, -2200, DRP_SH, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_45, FULL, DRP_OP, DRIV_READY, PID); //Turn - 45 curve auto(STR, S_EAST, -6620, DRP_SH, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_45, FULL, DRP_SH, DRIV_READY, PID); //Turn - Align auto(STR, SOUTH, -2420, LOW_LV, DRIV_READY, NEXT); //Backward - N dispenser to NW hooks auto(STR, SOUTH, 7900, HIG_SH, DRIV_READY, NEXT); //Forward - High auto(STR, SOUTH, -7800, HIG_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7400, MED_SH, DRIV_READY, NEXT); //Forward - Med auto(STR, SOUTH, -7600, MED_OP, DRIV_READY, NEXT); //Backward auto(STR, SOUTH, 7500, LOW_SH, DRIV_READY, NEXT); //Forward - Low auto(STR, SOUTH, -7500, LOW_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, RHT_90, FULL, CRN_SH, DRIV_READY, PID); //Turn toward corner hook auto(STR, 3600, 8850, CRN_SH, DRIV_READY, NEXT); //Forward auto(CMP_2, RHT_45, FULL, CRN_SH, DRIV_READY, PID); //Turn into corner hook auto(STR, 4050, 1000, CRN_SH, DRIV_READY, NEXT); //Let go auto(CMP_2, -1350, FULL, CRN_OP, DRIV_READY, NEXT); //Turn toward W dispenser auto(STR, SOUTH, 10400, DRP_SH, DRIV_READY, NEXT); //Forward - E dispenser to 4 tiles auto(CMP_2, -250, FULL, DRP_OP, DRIV_READY, NEXT); //Turn auto(STR, 2450, 8000, DRP_SH, DRIV_READY, NEXT); //Forward - N Tile auto(STR, 2450, -4000, DRP_SH, DRIV_READY, NEXT); //Backward auto(STR, 2450, -4000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, 250, FULL, DRP_SH, DRIV_READY, NEXT); //Turn auto(STR, SOUTH, 3000, DRP_SH, DRIV_READY, NEXT); //Forward - E Tile auto(STR, SOUTH, -4000, DRP_OP, DRIV_READY, NEXT); //Backward auto(CMP_2, LFT_45, FULL, DRP_SH, DRIV_READY, NEXT); //Turn auto(STR, S_EAST, 8300, DRP_SH, DRIV_READY, NEXT); //Forward - W Tile auto(STR, S_EAST, -8300, DRP_OP, DRIV_READY, NEXT); //Backward auto(STR, S_EAST, 2200, DRP_SH, DRIV_READY, NEXT); //Forward - S Tile auto(STR, S_EAST, -200, DRP_OP, DRIV_READY, NEXT); //Backward autoReset(FINISH); while(1==1) {zeroMotors(); output(); wait1Msec(10);} }